From 52b94de99db22111ffdbdb0e3a329b978b3fe226 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Wed, 13 May 2020 00:16:33 -0400 Subject: [PATCH 01/16] -v --- .gitignore | 6 + Makefile | 8 +- README.md | 11 + core/.DS_Store | Bin 6148 -> 6148 bytes core/.mypy_cache/3.7/api.meta.json | 2 +- core/.mypy_cache/3.7/core.data.json | 2 +- core/.mypy_cache/3.7/core.meta.json | 2 +- core/.mypy_cache/3.7/model.data.json | 2 +- core/.mypy_cache/3.7/model.meta.json | 2 +- core/.mypy_cache/3.7/user.meta.json | 2 +- core/__pycache__/api.cpython-37.pyc | Bin 3778 -> 3785 bytes core/__pycache__/model.cpython-37.pyc | Bin 12184 -> 12658 bytes core/__pycache__/user.cpython-37.pyc | Bin 5038 -> 5038 bytes core/api.py | 6 +- core/core.py | 11 + core/model.py | 43 +- core/storage/.DS_Store | Bin 6148 -> 6148 bytes core/storage/model_sessions.json | 7 +- core/storage/models.json | 28 +- core/user.py | 6 + interface/package-lock.json | 8141 +++++++++++------- interface/package.json | 33 +- interface/preload.js | 1 + interface/public/index.html | 4 +- interface/server.js | 107 +- interface/src/App.js | 1 + interface/src/GlobalContext/GlobalContext.js | 7 + interface/src/GlobalContext/index.js | 1 + package-lock.json | 617 ++ 29 files changed, 5734 insertions(+), 3316 deletions(-) create mode 100644 interface/preload.js create mode 100644 interface/src/GlobalContext/GlobalContext.js create mode 100644 interface/src/GlobalContext/index.js create mode 100644 package-lock.json diff --git a/.gitignore b/.gitignore index a06b128..7f9dbc4 100644 --- a/.gitignore +++ b/.gitignore @@ -6,7 +6,13 @@ core/.mypy_cache/* *.pyc __pycache__/* .mypy_cache/* +.mypy_cache +*.mypy_cache /core/__pycache__/* /core/.mypy_cache/* core/__pycache__/* core/.mypy_cache/* +interface/dist/ +/interface/dist/ +*.DS_Store + diff --git a/Makefile b/Makefile index e6d04a3..f55459b 100644 --- a/Makefile +++ b/Makefile @@ -29,12 +29,16 @@ check: --ignore-missing-imports ; profile_model: cd core/ ; python3.7 core.py profile_model ${model_name}; -uis: #ui server - cd interface/ ; node server.js rd: # react development server cd interface/ ; npm run start rb: # react build cd interface/ ; npm run build +electron: # launch electron + cd interface/ ; npm run start-electron +electron_static: # launch electron static react + cd interface/ ; npm run start-electron-static +package: #package react + cd interface/ ; npm run package; save_dev: git add * -v ; git commit -am ${M}-v ; git push origin master:main_dev_branch -v; test: diff --git a/README.md b/README.md index c5b371b..a45b558 100644 --- a/README.md +++ b/README.md @@ -39,10 +39,13 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: - Feedback Loop for continuous model training - "Shadow Mode" for model and risk score experimentation - Simple model configuration workflow + - Model groups + - Single-fire & Sequential models - Dashboard - Modern stack - Modular components - Live updating + - Global state, and component state - Features - Rule Storage/Management - Case Management @@ -50,6 +53,7 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: - Lightweight, SIEM-agnostic architecture - Flexible/open dataset support - Alerting/Ticketing system + - Browser & desktop applications ## Stack - Client Dashboard @@ -96,6 +100,13 @@ The interface is meant to observe system events, and anomalies - Modeling - Settings +# Model Library +OpenUBA implements a model library purposed with hosting ready-to-use models, both developed by us, and the community. For starters, we host the default model repository, similar to any popular package manager (npm, cargo, etc). However, developers can host their own model repository for use in their own instance of OpenUBA. + +Model installation currently works as follows: + + + ## Installation/Usage Go to [INSTALL.md](https://github.com/GACWR/OpenUBA/blob/master/docs/INSTALL.md) diff --git a/core/.DS_Store b/core/.DS_Store index 5008ddfcf53c02e82d7eee2e57c38e5672ef89f6..c20480cf62529aa7c1aa011c9ff70702d3c263ea 100644 GIT binary patch delta 153 zcmZoMXfc=|&e%RNQEZ}~q9_vs0|O%ig8&0V4nsT;XEG!)6irN2cLquDGUPJkGo&!2 zB1?m@W835TdAYlLi delta 68 zcmZoMXfc=|&Zs)EP;8=}A_oHyFfuR*Y`kd3KJh`-W_At%4o20D7r!%4<`+>E1WGX^ QfYbm1h~2Q+QRFZ)066Lo1poj5 diff --git a/core/.mypy_cache/3.7/api.meta.json b/core/.mypy_cache/3.7/api.meta.json index 274b765..bc275e7 100644 --- a/core/.mypy_cache/3.7/api.meta.json +++ b/core/.mypy_cache/3.7/api.meta.json @@ -1 +1 @@ -{"data_mtime": 1587529195, "dep_lines": [16, 17, 18, 19, 20, 21, 22, 23, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 5, 5, 10, 10, 5, 30, 30, 30, 30, 30], "dependencies": ["logging", "entity", "user", "enum", "display", "typing", "requests", "json", "builtins", "abc", "database", "json.encoder", "requests.models", "types"], "hash": "f96afb2a96e224f2b66fae496eec40da", "id": "api", "ignore_all": false, "interface_hash": "46a418b7569afd0dec40bea940888dff", "mtime": 1586530946, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "api.py", "plugin_data": null, "size": 3260, "suppressed": [], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1587529195, "dep_lines": [16, 17, 18, 19, 20, 21, 22, 23, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 5, 5, 10, 10, 5, 30, 30, 30, 30], "dependencies": ["logging", "entity", "user", "enum", "display", "typing", "requests", "json", "builtins", "abc", "database", "json.encoder", "requests.models"], "hash": "098e9deec1c9ac21b880dfc19daebc92", "id": "api", "ignore_all": false, "interface_hash": "46a418b7569afd0dec40bea940888dff", "mtime": 1588890541, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "api.py", "plugin_data": null, "size": 3311, "suppressed": [], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/core.data.json b/core/.mypy_cache/3.7/core.data.json index 571f343..5d35d13 100644 --- a/core/.mypy_cache/3.7/core.data.json +++ b/core/.mypy_cache/3.7/core.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "core", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "API": {".class": "SymbolTableNode", "cross_ref": "api.API", "kind": "Gdef"}, "CORS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "core.CORS", "name": "CORS", "type": {".class": "AnyType", "missing_import_name": "core.CORS", "source_any": null, "type_of_any": 3}}}, "Core": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "core.Core", "name": "Core", "type_vars": []}, "flags": [], "fullname": "core.Core", "metaclass_type": null, "metadata": {}, "module_name": "core", "mro": ["core.Core", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.__init__", "name": "__init__", "type": null}}, "display": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "core.Core.display", "name": "display", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "initiate": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.initiate", "name": "initiate", "type": null}}, "run_display_information_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.run_display_information_job", "name": "run_display_information_job", "type": null}}, "run_scheduler_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.run_scheduler_job", "name": "run_scheduler_job", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Display": {".class": "SymbolTableNode", "cross_ref": "display.Display", "kind": "Gdef"}, "Flask": {".class": "SymbolTableNode", "cross_ref": "flask.app.Flask", "kind": "Gdef"}, "ModelEngine": {".class": "SymbolTableNode", "cross_ref": "model.ModelEngine", "kind": "Gdef"}, "ModelLibrary": {".class": "SymbolTableNode", "cross_ref": "model.ModelLibrary", "kind": "Gdef"}, "ProcessEngine": {".class": "SymbolTableNode", "cross_ref": "process.ProcessEngine", "kind": "Gdef"}, "ProfileModel": {".class": "SymbolTableNode", "cross_ref": "model.ProfileModel", "kind": "Gdef"}, "Test": {".class": "SymbolTableNode", "cross_ref": "test.Test", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__package__", "name": "__package__", "type": "builtins.str"}}, "coloredlogs": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "core.coloredlogs", "name": "coloredlogs", "type": {".class": "AnyType", "missing_import_name": "core.coloredlogs", "source_any": null, "type_of_any": 3}}}, "component": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": [], "fullname": "core.component", "name": "component", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}}}, "core": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.core", "name": "core", "type": "core.Core"}}, "delete_model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["model_name"], "flags": ["is_decorated"], "fullname": "core.delete_model", "name": "delete_model", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "delete_model", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["model_name"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "delete_model", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "display": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["display_type"], "flags": ["is_decorated"], "fullname": "core.display", "name": "display", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "display", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["display_type"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "display", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "install_model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["model_name"], "flags": ["is_decorated"], "fullname": "core.install_model", "name": "install_model", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["model_name"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "install_model", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "jsonify": {".class": "SymbolTableNode", "cross_ref": "flask.json.jsonify", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_name": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_name", "name": "model_name", "type": "builtins.str"}}, "model_profile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_profile", "name": "model_profile", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "scheduler_run": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["name"], "flags": [], "fullname": "core.scheduler_run", "name": "scheduler_run", "type": null}}, "server": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": [], "fullname": "core.server", "name": "server", "type": "flask.app.Flask"}}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "trace": {".class": "SymbolTableNode", "cross_ref": "trace", "kind": "Gdef"}, "unittest": {".class": "SymbolTableNode", "cross_ref": "unittest", "kind": "Gdef"}}, "path": "core.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "core", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "API": {".class": "SymbolTableNode", "cross_ref": "api.API", "kind": "Gdef"}, "CORS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "core.CORS", "name": "CORS", "type": {".class": "AnyType", "missing_import_name": "core.CORS", "source_any": null, "type_of_any": 3}}}, "Core": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "core.Core", "name": "Core", "type_vars": []}, "flags": [], "fullname": "core.Core", "metaclass_type": null, "metadata": {}, "module_name": "core", "mro": ["core.Core", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.__init__", "name": "__init__", "type": null}}, "display": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "core.Core.display", "name": "display", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "initiate": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.initiate", "name": "initiate", "type": null}}, "run_display_information_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.run_display_information_job", "name": "run_display_information_job", "type": null}}, "run_scheduler_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.run_scheduler_job", "name": "run_scheduler_job", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Display": {".class": "SymbolTableNode", "cross_ref": "display.Display", "kind": "Gdef"}, "Flask": {".class": "SymbolTableNode", "cross_ref": "flask.app.Flask", "kind": "Gdef"}, "ModelEngine": {".class": "SymbolTableNode", "cross_ref": "model.ModelEngine", "kind": "Gdef"}, "ModelLibrary": {".class": "SymbolTableNode", "cross_ref": "model.ModelLibrary", "kind": "Gdef"}, "ProcessEngine": {".class": "SymbolTableNode", "cross_ref": "process.ProcessEngine", "kind": "Gdef"}, "ProfileModel": {".class": "SymbolTableNode", "cross_ref": "model.ProfileModel", "kind": "Gdef"}, "Test": {".class": "SymbolTableNode", "cross_ref": "test.Test", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__package__", "name": "__package__", "type": "builtins.str"}}, "coloredlogs": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "core.coloredlogs", "name": "coloredlogs", "type": {".class": "AnyType", "missing_import_name": "core.coloredlogs", "source_any": null, "type_of_any": 3}}}, "component": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": [], "fullname": "core.component", "name": "component", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}}}, "core": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.core", "name": "core", "type": "core.Core"}}, "delete_model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["model_name"], "flags": ["is_decorated"], "fullname": "core.delete_model", "name": "delete_model", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "delete_model", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["model_name"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "delete_model", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "display": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["display_type"], "flags": ["is_decorated"], "fullname": "core.display", "name": "display", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "display", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["display_type"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "display", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "install_model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["model_name"], "flags": ["is_decorated"], "fullname": "core.install_model", "name": "install_model", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["model_name"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "install_model", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "jsonify": {".class": "SymbolTableNode", "cross_ref": "flask.json.jsonify", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_name": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_name", "name": "model_name", "type": "builtins.str"}}, "model_profile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_profile", "name": "model_profile", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "model_to_update": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_to_update", "name": "model_to_update", "type": "builtins.str"}}, "profile_for_model_to_update": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.profile_for_model_to_update", "name": "profile_for_model_to_update", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "scheduler_run": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["name"], "flags": [], "fullname": "core.scheduler_run", "name": "scheduler_run", "type": null}}, "server": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": [], "fullname": "core.server", "name": "server", "type": "flask.app.Flask"}}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "trace": {".class": "SymbolTableNode", "cross_ref": "trace", "kind": "Gdef"}, "unittest": {".class": "SymbolTableNode", "cross_ref": "unittest", "kind": "Gdef"}}, "path": "core.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/core.meta.json b/core/.mypy_cache/3.7/core.meta.json index f232926..e6881fd 100644 --- a/core/.mypy_cache/3.7/core.meta.json +++ b/core/.mypy_cache/3.7/core.meta.json @@ -1 +1 @@ -{"data_mtime": 1587530483, "dep_lines": [21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 33, 1, 1, 1, 1, 1, 1, 1, 22, 34], "dep_prios": [5, 10, 10, 10, 5, 5, 5, 5, 5, 10, 10, 10, 5, 30, 30, 30, 30, 30, 30, 5, 10], "dependencies": ["flask", "logging", "threading", "time", "model", "test", "process", "api", "display", "unittest", "trace", "sys", "builtins", "abc", "flask.app", "flask.helpers", "flask.json", "types", "typing"], "hash": "871acc3803dc2b0457d8d2c9ef043b2b", "id": "core", "ignore_all": false, "interface_hash": "7faa962fd68d1c95d1608c6eac535168", "mtime": 1587141805, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "core.py", "plugin_data": null, "size": 4651, "suppressed": ["flask_cors", "coloredlogs"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1589323988, "dep_lines": [21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 33, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 22, 34], "dep_prios": [5, 10, 10, 10, 5, 5, 5, 5, 5, 10, 10, 10, 5, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5, 10], "dependencies": ["flask", "logging", "threading", "time", "model", "test", "process", "api", "display", "unittest", "trace", "sys", "builtins", "abc", "flask.app", "flask.helpers", "flask.json", "flask.wrappers", "types", "typing", "werkzeug", "werkzeug.wrappers"], "hash": "db04b1b93d39ddab75b28e809b09a276", "id": "core", "ignore_all": false, "interface_hash": "dc34ae40aaef734a42a2d43bbbccea51", "mtime": 1589323979, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "core.py", "plugin_data": null, "size": 5178, "suppressed": ["flask_cors", "coloredlogs"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/model.data.json b/core/.mypy_cache/3.7/model.data.json index 532e9c0..a05d3b0 100644 --- a/core/.mypy_cache/3.7/model.data.json +++ b/core/.mypy_cache/3.7/model.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "model", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "B64DecodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64DecodeFile", "kind": "Gdef"}, "B64EncodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64EncodeFile", "kind": "Gdef"}, "Base64": {".class": "SymbolTableNode", "cross_ref": "encode.Base64", "kind": "Gdef"}, "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "DEFAULT_MODEL_LIBRARY": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.DEFAULT_MODEL_LIBRARY", "name": "DEFAULT_MODEL_LIBRARY", "type": "builtins.str"}}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "GetAllUsers": {".class": "SymbolTableNode", "cross_ref": "user.GetAllUsers", "kind": "Gdef"}, "Hash": {".class": "SymbolTableNode", "cross_ref": "hash.Hash", "kind": "Gdef"}, "HashData": {".class": "SymbolTableNode", "cross_ref": "hash.HashData", "kind": "Gdef"}, "HashFile": {".class": "SymbolTableNode", "cross_ref": "hash.HashFile", "kind": "Gdef"}, "LibraryAPI": {".class": "SymbolTableNode", "cross_ref": "api.LibraryAPI", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "MAX_COMPONENTS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MAX_COMPONENTS", "name": "MAX_COMPONENTS", "type": "builtins.int"}}, "MODELS_LIBRARY_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_LIBRARY_FILE_LOCATION", "name": "MODELS_LIBRARY_FILE_LOCATION", "type": "builtins.str"}}, "MODELS_SESSION_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_SESSION_FILE_LOCATION", "name": "MODELS_SESSION_FILE_LOCATION", "type": "builtins.str"}}, "Model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.Model", "name": "Model", "type_vars": []}, "flags": [], "fullname": "model.Model", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.Model", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "dataframe"], "flags": [], "fullname": "model.Model.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "dataframe"], "arg_types": ["model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Model", "ret_type": {".class": "NoneType"}, "variables": []}}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.Model.data", "name": "data", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.Model.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "run": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.Model.run", "name": "run", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelComponent": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelComponent", "name": "ModelComponent", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelComponent", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelComponent", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "EXTERNAL": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.EXTERNAL", "name": "EXTERNAL", "type": "builtins.str"}}, "NATIVE": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.NATIVE", "name": "NATIVE", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDataLoader": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDataLoader", "name": "ModelDataLoader", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelDataLoader", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelDataLoader", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "LOCAL_PANDAS_CSV": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_CSV", "name": "LOCAL_PANDAS_CSV", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDeployment": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDeployment", "name": "ModelDeployment", "type_vars": []}, "flags": [], "fullname": "model.ModelDeployment", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelDeployment", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "flags": [], "fullname": "model.ModelDeployment.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "arg_types": ["model.ModelDeployment", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelDeployment", "ret_type": {".class": "NoneType"}, "variables": []}}}, "did": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelDeployment.did", "name": "did", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelEngine": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelEngine", "name": "ModelEngine", "type_vars": []}, "flags": [], "fullname": "model.ModelEngine", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelEngine", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.__init__", "name": "__init__", "type": null}}, "execute": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.execute", "name": "execute", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.library", "name": "library", "type": "model.ModelLibrary"}}, "model_configuration": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.model_configuration", "name": "model_configuration", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelLibrary": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelLibrary", "name": "ModelLibrary", "type_vars": []}, "flags": [], "fullname": "model.ModelLibrary", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelLibrary", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelLibrary.__init__", "name": "__init__", "type": null}}, "api": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelLibrary.api", "name": "api", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "install_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.install_model", "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "install_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "is_installed": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.is_installed", "name": "is_installed", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "is_installed of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "remove_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "flags": [], "fullname": "model.ModelLibrary.remove_model", "name": "remove_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "arg_types": ["model.ModelLibrary", "builtins.int"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "remove_model of ModelLibrary", "ret_type": "builtins.bool", "variables": []}}}, "run_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.run_model", "name": "run_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "run_model of ModelLibrary", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}, "store_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.store_model", "name": "store_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "store_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelProfile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelProfile", "name": "ModelProfile", "type_vars": []}, "flags": [], "fullname": "model.ModelProfile", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelProfile", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "flags": [], "fullname": "model.ModelProfile.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "arg_types": ["model.ModelProfile", "model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelProfile", "ret_type": {".class": "NoneType"}, "variables": []}}}, "component": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.component", "name": "component", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "data": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.data", "name": "data", "type": null}}, "files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.files", "name": "files", "type": null}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.model", "name": "model", "type": "model.Model"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelSession", "name": "ModelSession", "type_vars": []}, "flags": [], "fullname": "model.ModelSession", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "flags": [], "fullname": "model.ModelSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "arg_types": ["model.ModelSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "model.ModelLibrary"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "cleanup_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelSession.cleanup_model", "name": "cleanup_model", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.library", "name": "library", "type": "model.ModelLibrary"}}, "metadata": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.metadata", "name": "metadata", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "start_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "flags": [], "fullname": "model.ModelSession.start_job", "name": "start_job", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "arg_types": ["model.ModelSession", "dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "start_job of ModelSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ProfileModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ProfileModel", "name": "ProfileModel", "type_vars": []}, "flags": [], "fullname": "model.ProfileModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ProfileModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "flags": [], "fullname": "model.ProfileModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "arg_types": ["model.ProfileModel", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ProfileModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model_name": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ProfileModel.model_name", "name": "model_name", "type": "builtins.str"}}, "profile": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ProfileModel.profile", "name": "profile", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ReadJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.ReadJSONFileFS", "kind": "Gdef"}, "Timestamp": {".class": "SymbolTableNode", "cross_ref": "utility.Timestamp", "kind": "Gdef"}, "User": {".class": "SymbolTableNode", "cross_ref": "user.User", "kind": "Gdef"}, "UserSet": {".class": "SymbolTableNode", "cross_ref": "user.UserSet", "kind": "Gdef"}, "VerifyModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.VerifyModel", "name": "VerifyModel", "type_vars": []}, "flags": [], "fullname": "model.VerifyModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.VerifyModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.VerifyModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.VerifyModel", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of VerifyModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.VerifyModel.model", "name": "model", "type": "model.Model"}}, "verify_model_encodings": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_encodings", "name": "verify_model_encodings", "type": null}}, "verify_model_files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_files", "name": "verify_model_files", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "WriteJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.WriteJSONFileFS", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__package__", "name": "__package__", "type": "builtins.str"}}, "io": {".class": "SymbolTableNode", "cross_ref": "io", "kind": "Gdef"}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_modules": {".class": "SymbolTableNode", "cross_ref": "model_modules", "kind": "Gdef"}, "os": {".class": "SymbolTableNode", "cross_ref": "os", "kind": "Gdef"}, "path": {".class": "SymbolTableNode", "cross_ref": "os.path", "kind": "Gdef"}, "shutil": {".class": "SymbolTableNode", "cross_ref": "shutil", "kind": "Gdef"}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "urllib": {".class": "SymbolTableNode", "cross_ref": "urllib", "kind": "Gdef"}}, "path": "model.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "model", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "B64DecodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64DecodeFile", "kind": "Gdef"}, "B64EncodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64EncodeFile", "kind": "Gdef"}, "Base64": {".class": "SymbolTableNode", "cross_ref": "encode.Base64", "kind": "Gdef"}, "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "DEFAULT_MODEL_LIBRARY": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.DEFAULT_MODEL_LIBRARY", "name": "DEFAULT_MODEL_LIBRARY", "type": "builtins.str"}}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "GetAllUsers": {".class": "SymbolTableNode", "cross_ref": "user.GetAllUsers", "kind": "Gdef"}, "Hash": {".class": "SymbolTableNode", "cross_ref": "hash.Hash", "kind": "Gdef"}, "HashData": {".class": "SymbolTableNode", "cross_ref": "hash.HashData", "kind": "Gdef"}, "HashFile": {".class": "SymbolTableNode", "cross_ref": "hash.HashFile", "kind": "Gdef"}, "LibraryAPI": {".class": "SymbolTableNode", "cross_ref": "api.LibraryAPI", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "MAX_COMPONENTS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MAX_COMPONENTS", "name": "MAX_COMPONENTS", "type": "builtins.int"}}, "MODELS_LIBRARY_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_LIBRARY_FILE_LOCATION", "name": "MODELS_LIBRARY_FILE_LOCATION", "type": "builtins.str"}}, "MODELS_SESSION_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_SESSION_FILE_LOCATION", "name": "MODELS_SESSION_FILE_LOCATION", "type": "builtins.str"}}, "Model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.Model", "name": "Model", "type_vars": []}, "flags": [], "fullname": "model.Model", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.Model", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "dataframe"], "flags": [], "fullname": "model.Model.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "dataframe"], "arg_types": ["model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Model", "ret_type": {".class": "NoneType"}, "variables": []}}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.Model.data", "name": "data", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.Model.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "run": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.Model.run", "name": "run", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelComponent": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelComponent", "name": "ModelComponent", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelComponent", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelComponent", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "EXTERNAL": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.EXTERNAL", "name": "EXTERNAL", "type": "builtins.str"}}, "NATIVE": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.NATIVE", "name": "NATIVE", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDataLoader": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDataLoader", "name": "ModelDataLoader", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelDataLoader", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelDataLoader", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "LOCAL_PANDAS_CSV": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_CSV", "name": "LOCAL_PANDAS_CSV", "type": "builtins.str"}}, "LOCAL_PANDAS_PARQUET": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_PARQUET", "name": "LOCAL_PANDAS_PARQUET", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDeployment": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDeployment", "name": "ModelDeployment", "type_vars": []}, "flags": [], "fullname": "model.ModelDeployment", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelDeployment", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "flags": [], "fullname": "model.ModelDeployment.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "arg_types": ["model.ModelDeployment", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelDeployment", "ret_type": {".class": "NoneType"}, "variables": []}}}, "did": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelDeployment.did", "name": "did", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelEngine": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelEngine", "name": "ModelEngine", "type_vars": []}, "flags": [], "fullname": "model.ModelEngine", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelEngine", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.__init__", "name": "__init__", "type": null}}, "execute": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.execute", "name": "execute", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.library", "name": "library", "type": "model.ModelLibrary"}}, "model_configuration": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.model_configuration", "name": "model_configuration", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelLibrary": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelLibrary", "name": "ModelLibrary", "type_vars": []}, "flags": [], "fullname": "model.ModelLibrary", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelLibrary", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelLibrary.__init__", "name": "__init__", "type": null}}, "api": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelLibrary.api", "name": "api", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "install_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.install_model", "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "install_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "is_installed": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.is_installed", "name": "is_installed", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "is_installed of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "remove_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "flags": [], "fullname": "model.ModelLibrary.remove_model", "name": "remove_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "arg_types": ["model.ModelLibrary", "builtins.int"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "remove_model of ModelLibrary", "ret_type": "builtins.bool", "variables": []}}}, "run_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.run_model", "name": "run_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "run_model of ModelLibrary", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}, "store_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.store_model", "name": "store_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "store_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelProfile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelProfile", "name": "ModelProfile", "type_vars": []}, "flags": [], "fullname": "model.ModelProfile", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelProfile", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "flags": [], "fullname": "model.ModelProfile.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "arg_types": ["model.ModelProfile", "model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelProfile", "ret_type": {".class": "NoneType"}, "variables": []}}}, "component": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.component", "name": "component", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "data": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.data", "name": "data", "type": null}}, "files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.files", "name": "files", "type": null}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.model", "name": "model", "type": "model.Model"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelReturnType": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelReturnType", "name": "ModelReturnType", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelReturnType", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelReturnType", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "USER_RISKS": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelReturnType.USER_RISKS", "name": "USER_RISKS", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelSession", "name": "ModelSession", "type_vars": []}, "flags": [], "fullname": "model.ModelSession", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "flags": [], "fullname": "model.ModelSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "arg_types": ["model.ModelSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "model.ModelLibrary"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "cleanup_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelSession.cleanup_model", "name": "cleanup_model", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.library", "name": "library", "type": "model.ModelLibrary"}}, "metadata": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.metadata", "name": "metadata", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "start_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "flags": [], "fullname": "model.ModelSession.start_job", "name": "start_job", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "arg_types": ["model.ModelSession", "dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "start_job of ModelSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ProfileModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ProfileModel", "name": "ProfileModel", "type_vars": []}, "flags": [], "fullname": "model.ProfileModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ProfileModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "flags": [], "fullname": "model.ProfileModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "arg_types": ["model.ProfileModel", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ProfileModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model_name": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ProfileModel.model_name", "name": "model_name", "type": "builtins.str"}}, "profile": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ProfileModel.profile", "name": "profile", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ReadJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.ReadJSONFileFS", "kind": "Gdef"}, "Timestamp": {".class": "SymbolTableNode", "cross_ref": "utility.Timestamp", "kind": "Gdef"}, "User": {".class": "SymbolTableNode", "cross_ref": "user.User", "kind": "Gdef"}, "UserSet": {".class": "SymbolTableNode", "cross_ref": "user.UserSet", "kind": "Gdef"}, "VerifyModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.VerifyModel", "name": "VerifyModel", "type_vars": []}, "flags": [], "fullname": "model.VerifyModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.VerifyModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.VerifyModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.VerifyModel", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of VerifyModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.VerifyModel.model", "name": "model", "type": "model.Model"}}, "verify_model_encodings": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_encodings", "name": "verify_model_encodings", "type": null}}, "verify_model_files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_files", "name": "verify_model_files", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "WriteJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.WriteJSONFileFS", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__package__", "name": "__package__", "type": "builtins.str"}}, "io": {".class": "SymbolTableNode", "cross_ref": "io", "kind": "Gdef"}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_modules": {".class": "SymbolTableNode", "cross_ref": "model_modules", "kind": "Gdef"}, "os": {".class": "SymbolTableNode", "cross_ref": "os", "kind": "Gdef"}, "path": {".class": "SymbolTableNode", "cross_ref": "os.path", "kind": "Gdef"}, "shutil": {".class": "SymbolTableNode", "cross_ref": "shutil", "kind": "Gdef"}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "urllib": {".class": "SymbolTableNode", "cross_ref": "urllib", "kind": "Gdef"}}, "path": "model.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/model.meta.json b/core/.mypy_cache/3.7/model.meta.json index 44eb07e..e458bf8 100644 --- a/core/.mypy_cache/3.7/model.meta.json +++ b/core/.mypy_cache/3.7/model.meta.json @@ -1 +1 @@ -{"data_mtime": 1587532244, "dep_lines": [16, 17, 18, 19, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 248], "dep_prios": [10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 30, 30, 30, 30, 30, 30, 20], "dependencies": ["logging", "threading", "time", "urllib.request", "urllib", "sys", "os", "os.path", "shutil", "io", "json", "model_modules", "database", "dataset", "user", "encode", "hash", "utility", "typing", "api", "enum", "builtins", "_importlib_modulespec", "abc", "json.decoder", "model_modules.local_pandas", "model_modules.local_pandas.local_pandas", "types"], "hash": "8a1669a0c7b4d2e899b12975ef52c114", "id": "model", "ignore_all": false, "interface_hash": "ecda04a38f0cfa8a4e83722d9ca2f94b", "mtime": 1587532234, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "model.py", "plugin_data": null, "size": 17906, "suppressed": ["MODEL"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1589324546, "dep_lines": [16, 17, 18, 19, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 273], "dep_prios": [10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 30, 30, 30, 30, 30, 30, 20], "dependencies": ["logging", "threading", "time", "urllib.request", "urllib", "sys", "os", "os.path", "shutil", "io", "json", "model_modules", "database", "dataset", "user", "encode", "hash", "utility", "typing", "api", "enum", "builtins", "_importlib_modulespec", "abc", "json.decoder", "model_modules.local_pandas", "model_modules.local_pandas.local_pandas", "types"], "hash": "d4849e0b168af209336fae718aa24be3", "id": "model", "ignore_all": false, "interface_hash": "7b12e2779bec9c72bc7d21f18fb5ce81", "mtime": 1589325241, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "model.py", "plugin_data": null, "size": 19147, "suppressed": ["MODEL"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/user.meta.json b/core/.mypy_cache/3.7/user.meta.json index bfde0d2..a358aaa 100644 --- a/core/.mypy_cache/3.7/user.meta.json +++ b/core/.mypy_cache/3.7/user.meta.json @@ -1 +1 @@ -{"data_mtime": 1587529195, "dep_lines": [16, 17, 18, 19, 1, 1, 1, 20, 22], "dep_prios": [10, 5, 5, 5, 5, 30, 30, 5, 10], "dependencies": ["logging", "database", "dataset", "typing", "builtins", "abc", "types"], "hash": "494fb01422a17891d06e00880a46517b", "id": "user", "ignore_all": false, "interface_hash": "2f15577ebb851ecfbed21c452a2fa655", "mtime": 1587486992, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user.py", "plugin_data": null, "size": 5105, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1587529195, "dep_lines": [16, 17, 18, 19, 1, 1, 1, 20, 22], "dep_prios": [10, 5, 5, 5, 5, 30, 30, 5, 10], "dependencies": ["logging", "database", "dataset", "typing", "builtins", "abc", "types"], "hash": "b36b78a1383b6ed86044b4c6374bd9f3", "id": "user", "ignore_all": false, "interface_hash": "2f15577ebb851ecfbed21c452a2fa655", "mtime": 1588910827, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user.py", "plugin_data": null, "size": 5184, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/__pycache__/api.cpython-37.pyc b/core/__pycache__/api.cpython-37.pyc index e7be450638cbd7b702b514274fea7da2d4a5a938..52fb7966098ee79309f2fe734ed134b7d6fe2123 100644 GIT binary patch delta 70 zcmX>kds3FyiIpdq|eoiIQ S`HYd17xQK@vQFmX+YJCQUJ>O0 diff --git a/core/__pycache__/model.cpython-37.pyc b/core/__pycache__/model.cpython-37.pyc index 2a19daec8e96d2f31056eb65941f3a2f23ee4295..794a7c990345ddd5d0472fdd3e514e395b42d790 100644 GIT binary patch delta 3483 zcmai1U2Ggz6`ngYJ3G7H9k0FqS;tPYcKo;gS;ukg#<4@<*p8h)JF)Y-p`LC$<7C~< z?B>omiPPD*#H2++Z37n}Br1^zwWSggMScKOK)lcwL?tBpGD18c^?^59BoIPEoO5Tr zaYH4%nloqaIrrT2`_1@!`sdfR}_J9Nsk} z7_COz*9D_(Q_Kt*`!Wa3VKZg4j|=QKq@@nTDWeC(Js>`0h>Jq1ck3_239wbAncWJu zEoAEQh2?BsFJ>(xYr~D+UNfD!RDdSnT-t* z+{D89i_;fqGi!~-{C z7T`Qp*K=0R(e+vOM7`M5S&?!*t|HMj>nzhk!%7!QQ*3`vBHjk<3|!?7)eYMZ;yZ!EE;kI^J zFa+r6_*|yS$U0d)U&tCMlV;+TCup$cg5{X^oJ?%zq5}=c-iwT~zec`4;whAOrB~(O zb(G$3I9o8xd@^Sz=jJaYO)GmnZyJY_sRo*c%F+Yuo#?^Q4q&}Nk>)Ii?#1OnBm+ne zA{j!mABY#><`zxc&J`@$&!XCHjV4jt3M5rcJ6T$5J(SsV3y;-r(85|#N0%|E9bq(l zxtz^wSAu0H*$=ecU71>6u^dvqa3i;zsrkYhPr@&?#B>2Xu#W)|-b_#@Gk7^JMhf@$|mRMtTaAyzqd zO{Y+!8%QeXA34K*81Es&?Bn}Kb!g7b(*E?19YC9tbY{a2V=?o zUg%(du1`d<8MY&sVN$~o`8#`|VO&96q2p}5;a}jp-8eJCcXJPTC-MH0>~))m>?sh1 zNgbNSZ6}fN20O_9*4Ws}(}M;xVc)T0*174c&Z6ot>rU*BD}YEgLc2f`fm&IE+OaE% zpKN4c<$of=FzGy!Yd}2l?sYG+lFOU$npo$<7W8`^9rolx(S#)4r8&o>A>6cp%Yo&5 z!8R+w`iGFyJ7&BIW z=UCj-qvo;b1W3RDf7|r4-#2IX`z$QeY9O9U&8&f-K_y(PL;Z3Omp3i74D#-uV&7@$ zQ`%8$eCwkYMiky&DfZc(dgknTXRzY7Cp)=YrWdgDrdjk8!fjQ0h4!PBm)NPjsjHYO zul9~fb1Un*-w{|lns&yKZhQa*gMn6A;| zAiso}!B!VYSPV-MDJF$w8PFnum_Z_d83{xb39p2t!CFFLiR5B07POrHOlWc9#I$~P zerkGWLx2Lk59Dq3-Q>|-yx3S_ik(3NNYDd%AIr20i!q7LD8Q&BRvSA(agExnwKb#O z0X9YG4BKq&kK%-ESAM2a`S-UzX+1(nhCS}+;OVE=*jM)5J%idlW~?Lk3KCup4)2)v zOzbQo_LONa(_GO(bYDU(4gq|UaYj=r06b|=6P@jE?*cGE=(`Jo54MW!d!IY_!;aHS z|Nr3fE9D$5U|GF@U);*s+vrt7XC5HgK!USJUu8yTTi_nBpRjLsUXAh5;+aL4=siqo zJ!b7k&yuPI)ed?G`u|MyAxI#F+(n(;?;2|KSzMONn2C1uN_zjv{?uiYo9tY7`>=~@ zK^o;6Ks?2?mLY}Dpu|T`jAYxK%iix!1`rMZ%|7mCRXczQY$j$g_TT*8o*3SIJUiUdCeIG$;2+Pj6O+{l zeaO+_PR}U5h33v;Ui?EnA( delta 2992 zcmai0U2G#)6`ngkp0Q(3?0DVS`H%BE`LUDz%Z6mT*?KoyXm+=B>28{4*EpHU;;h$B z?u<7{vFo(o1p+aZC=ZASkovGfi1L6q=T71* z1qoYoe9t}So_o%Be#Q@0zLV7-3xxs#e17@SJGUNOd{d8;pT0MgA!1!*Me>DNvv=u) zb<#4-F#F8@`-0hD7ne=}H((9|HwfHm;D*d$;D&*lGR13xVeCI3j>1lAo$MQG zhjhh|*#~MbtEFR+PPp(4Jhli#BeauEj3wBI+Vc~=uwh89Y+Hpj+5-&59opU?9k6n> zY&KuaJK5|UqyDE8eGMts<0=v@7ca6u`cL`#Q98&Xk$AKlmgnHHWgr>}E3|umKJXYJ zN%qaAFOxp@aZ{gy`cE<`I8#GlG}VBvU9A%$6uV5# z@mENlvsrc)}{yUs$G4;lovj=92!se@7 z)Z7pqNH$-+A#Cb51XF-~hp#L(nK>tyEtGPmMcJQ1(|%W7EfpPW+hLvh_t>xWgchZv zfF@0|PxX^0ldyD^4Vo`HG=Ej!k2uwbJtK|Ur0q_89s{AyC11mz$J5KYlZ3y~#Fe1rr+ zLnCpCeG(q?%H|?3n_)P96%Bc1qqWjuUa(I`EMl;qM`oaMUQ9=M<@}H}w~TA9k6KQd z7TNih9}UjJQ7@iGc!o@Q(OyCkHUT}(^k@(H2}?&$lg$2Fw1bdoRzG%?OtD`dOZ7EQ z(s|H!)qK%*a)km#1UXDJ#rk8Zehk%>*X>f#RWJ`WokNWQAcpGQnPK;0Bjh;Si>1j2 z`ya(lkw>OM{G5Ilan2UO%U(sY4!w7wkX7h@j01SQ#ft?>|M=rDu~`)%t9@-Yj< zXMNZx^l`Qj{|ua;Ph6_;({o3sVdYBpj?H6seGr939eN8DE+XMsN9zdS-O@eFRl%!r z!LkkCf%hO>3V5z=b|bfgcmjxxm|VHEVFAutH1Al{kB6{ITxGRTvaJR_xWA11 zWbI+^xIX4ZXDjXJQaE*72^#?i6nz2-jw^Z{$xS3fNLG;yU|F^su>1i$b`Xe0G&S6; zck9t`4>fpsws*YN%ALjZElFnHG(-=?LZe*!*zY=~eZ2Sj(P-oj=q6#*9ggNZ+|**{ zOz12~z(5cDKo{qVT|4G8uRh_{rLWOyBJpVc+W2;8$P+R zlfP@Zie0d*4KG@5g1f^jdjv1L$vS(DXAlRs<(@_JYdcvl|Ckt?BjQR0tH=k38(J+` zxng<4(=ik;V)SC^pu&0Y6jv?EyYB+W;!%)4%6`_{9TS5j&SwSAi@2zBp8d7=nua++ z1lfGDOW6XZ#`4K?Z9FZQ3yL|U3KBF&w-C@agl!Z7^}zz(IW6Jy6!+)``&)8Jvtelv znqk-b#zWXYhdIhLa`f%}ANQRluHt2?arfaUdJbLqI+6+!>=IgKQ^QH649oY~t>I_Fya_n6=n^d>s4+zC zTSuVksy0AvUa2ADM5qQ*fRVeo%q|-zTD>K1OGjgbE;k@{*}H~KEOu@*&Spk}r*=?P zr6Kt7de>(aR{_eS=J&=SMs#R$hgC*;6wJpT*xm?hdT5k@-Tv9 zBI4E;@sOA=(XSvkg9;k{zhTjd_l#_q`yLR|{sK&{1mK!SsXg^`I-L;#3onHY dict: # import the model model_path: str = 'model_library/'+str( model.data["model_name"] ) + # insert model scope sys.path.insert(0, model_path) import MODEL - # execute model try: model_result: dict = MODEL.execute() @@ -341,6 +365,8 @@ def start_job(self, dataframe: CoreDataFrame) -> dict: self.library.install_model(model_instance) if VerifyModel(model_instance).verify_model_files(): + # + model_result = self.library.run_model(model_instance) logging.info("Model Session: finishing job: "+str(len(model_result))) @@ -360,11 +386,14 @@ def start_job(self, dataframe: CoreDataFrame) -> dict: else: logging.info("Model Session, model [IS] installed: "+str(model_instance.data["model_name"])) + # only verify components installed if VerifyModel(model_instance).verify_model_files(): model_result = self.library.run_model(model_instance) logging.info("Model Session: finishing job: "+str(len(model_result))) + # TODO: handle model result conditioned on model_instance.data["return"] object + else: # TODO: handle error logging.error("Model Failed File Verification: "+str(model_instance.data)) diff --git a/core/storage/.DS_Store b/core/storage/.DS_Store index da8ff37cf2080686c4febac2a586157656289d0e..7ff7399be9f0cd8d9ab91d5d8107f636e76645c6 100644 GIT binary patch delta 366 zcmZoMXfc=|#>B)qu~2NHo}w^20|Nsi1A_nqLuyiaaY0f}e$wWNj4K)IK@zMCxeS>M zB@9IfNucP7q=KBx;t~Uc>x@jyEUawo92{I+T)bSd!5R7G!6k_$rNvH(MbRK$Kw?Qo z5|ka1pPvI~Cnkkurk2MGh&boxl_X~7r51rTXQreAmBfT+=B1?MmpkQ`=A{&a4GMfgYS63UG>nNBR8rJG4RGXU{=qQ*No7L8Ga)_%M+IlABR#sKl)Yi=aIu-~R zf&K#nekcv2W=`f|Y@V#k$Zb*dy$3o`)uHC?6v delta 85 zcmZoMXfc=|#>B`mu~2NHo}w@d0|Nsi1A_nqLuyXCVQ_MOZo$ODm5eNt-!V0B-oxz8 mviShBF4Jaq4t@@xrp+6fzcWwf7qR33Y6IzG+8iLVg&6>q^c2nj diff --git a/core/storage/model_sessions.json b/core/storage/model_sessions.json index 6e7a984..eaf74ea 100644 --- a/core/storage/model_sessions.json +++ b/core/storage/model_sessions.json @@ -1,8 +1,13 @@ { "session": { "model_name": "model_1", + "description": "blank", "enabled": true, "root": "ANJKD8aioh8wonsLAS9HWOI", + "return": { + "return_type": "user_risks", + "artifacts": [] + }, "components": [ { "type": "external", @@ -20,5 +25,5 @@ } ] }, - "timestamp": "2020-04-22 01:11:05" + "timestamp": "2020-05-12 23:47:49" } \ No newline at end of file diff --git a/core/storage/models.json b/core/storage/models.json index 24b43ba..e20796f 100644 --- a/core/storage/models.json +++ b/core/storage/models.json @@ -1,16 +1,31 @@ { "MODEL_TEST_GROUP_1": { "group_name": "MODEL_TEST_GROUP_1", - "data_loader": "local_pandas_csv", - "context": { - "file_location": "../test_datasets/toy_1/proxy/bluecoat.log" + "data_loader": { + "data_loader_type": "local_pandas_csv", + "data_loader_context": { + "file_location": "../test_datasets/toy_1/proxy/bluecoat.log" + } }, + "conditions": [ + { + "condition_name": "sample_condition_one", + "features": "cs-username|cs-username", + "condition": "parameter1 == 'alice' and parameter2 != 'bob'", + "score": 10 + } + ], "models": [ { "model_name": "model_test", + "description": "blank", "enabled": true, "root": "ANJKD8aioh8wonsLAS9HWOI", - "return": "user_risks", + "return": { + "return_type": "user_risks", + "artifacts": [] + }, + "score": 10, "components": [ { "type": "external", @@ -30,8 +45,13 @@ }, { "model_name": "model_1", + "description": "blank", "enabled": true, "root": "ANJKD8aioh8wonsLAS9HWOI", + "return": { + "return_type": "user_risks", + "artifacts": [] + }, "components": [ { "type": "external", diff --git a/core/user.py b/core/user.py index a1cc3f6..173856e 100644 --- a/core/user.py +++ b/core/user.py @@ -84,6 +84,12 @@ def get(self) -> dict: #users = self.read_file() return {"user1": {}, "user2": {}} + +''' +@name StoreUserRisks +@description fetch all users from the actual DB +''' + class ExtractAllUsersCSV(DBReadFile): ''' @name get diff --git a/interface/package-lock.json b/interface/package-lock.json index 4eab21b..44ce3d7 100644 --- a/interface/package-lock.json +++ b/interface/package-lock.json @@ -4,12 +4,18 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "7zip-bin": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz", + "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA==", + "dev": true + }, "@babel/code-frame": { "version": "7.8.3", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.8.3.tgz", "integrity": "sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g==", "requires": { - "@babel/highlight": "7.9.0" + "@babel/highlight": "^7.8.3" } }, "@babel/compat-data": { @@ -17,9 +23,9 @@ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.9.0.tgz", "integrity": "sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g==", "requires": { - "browserslist": "4.11.0", - "invariant": "2.2.4", - "semver": "5.7.1" + "browserslist": "^4.9.1", + "invariant": "^2.2.4", + "semver": "^5.5.0" }, "dependencies": { "semver": { @@ -34,22 +40,22 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.9.0.tgz", "integrity": "sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w==", "requires": { - "@babel/code-frame": "7.8.3", - "@babel/generator": "7.9.3", - "@babel/helper-module-transforms": "7.9.0", - "@babel/helpers": "7.9.2", - "@babel/parser": "7.9.3", - "@babel/template": "7.8.6", - "@babel/traverse": "7.9.0", - "@babel/types": "7.9.0", - "convert-source-map": "1.7.0", - "debug": "4.1.1", - "gensync": "1.0.0-beta.1", - "json5": "2.1.2", - "lodash": "4.17.15", - "resolve": "1.15.0", - "semver": "5.7.1", - "source-map": "0.5.7" + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helpers": "^7.9.0", + "@babel/parser": "^7.9.0", + "@babel/template": "^7.8.6", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.13", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" }, "dependencies": { "semver": { @@ -64,10 +70,10 @@ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.9.3.tgz", "integrity": "sha512-RpxM252EYsz9qLUIq6F7YJyK1sv0wWDBFuztfDGWaQKzHjqDHysxSiRUpA/X9jmfqo+WzkAVKFaUily5h+gDCQ==", "requires": { - "@babel/types": "7.9.0", - "jsesc": "2.5.2", - "lodash": "4.17.15", - "source-map": "0.5.7" + "@babel/types": "^7.9.0", + "jsesc": "^2.5.1", + "lodash": "^4.17.13", + "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { @@ -75,7 +81,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz", "integrity": "sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.8.3" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { @@ -83,8 +89,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz", "integrity": "sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw==", "requires": { - "@babel/helper-explode-assignable-expression": "7.8.3", - "@babel/types": "7.9.0" + "@babel/helper-explode-assignable-expression": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-builder-react-jsx": { @@ -92,8 +98,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz", "integrity": "sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw==", "requires": { - "@babel/helper-annotate-as-pure": "7.8.3", - "@babel/types": "7.9.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/types": "^7.9.0" } }, "@babel/helper-builder-react-jsx-experimental": { @@ -101,9 +107,9 @@ "resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.0.tgz", "integrity": "sha512-3xJEiyuYU4Q/Ar9BsHisgdxZsRlsShMe90URZ0e6przL26CCs8NJbDoxH94kKT17PcxlMhsCAwZd90evCo26VQ==", "requires": { - "@babel/helper-annotate-as-pure": "7.8.3", - "@babel/helper-module-imports": "7.8.3", - "@babel/types": "7.9.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-module-imports": "^7.8.3", + "@babel/types": "^7.9.0" } }, "@babel/helper-compilation-targets": { @@ -111,11 +117,11 @@ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz", "integrity": "sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw==", "requires": { - "@babel/compat-data": "7.9.0", - "browserslist": "4.11.0", - "invariant": "2.2.4", - "levenary": "1.1.1", - "semver": "5.7.1" + "@babel/compat-data": "^7.8.6", + "browserslist": "^4.9.1", + "invariant": "^2.2.4", + "levenary": "^1.1.1", + "semver": "^5.5.0" }, "dependencies": { "semver": { @@ -130,12 +136,12 @@ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.8.6.tgz", "integrity": "sha512-klTBDdsr+VFFqaDHm5rR69OpEQtO2Qv8ECxHS1mNhJJvaHArR6a1xTf5K/eZW7eZpJbhCx3NW1Yt/sKsLXLblg==", "requires": { - "@babel/helper-function-name": "7.8.3", - "@babel/helper-member-expression-to-functions": "7.8.3", - "@babel/helper-optimise-call-expression": "7.8.3", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/helper-replace-supers": "7.8.6", - "@babel/helper-split-export-declaration": "7.8.3" + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3" } }, "@babel/helper-create-regexp-features-plugin": { @@ -143,9 +149,9 @@ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz", "integrity": "sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg==", "requires": { - "@babel/helper-annotate-as-pure": "7.8.3", - "@babel/helper-regex": "7.8.3", - "regexpu-core": "4.7.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-regex": "^7.8.3", + "regexpu-core": "^4.7.0" } }, "@babel/helper-define-map": { @@ -153,9 +159,9 @@ "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz", "integrity": "sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g==", "requires": { - "@babel/helper-function-name": "7.8.3", - "@babel/types": "7.9.0", - "lodash": "4.17.15" + "@babel/helper-function-name": "^7.8.3", + "@babel/types": "^7.8.3", + "lodash": "^4.17.13" } }, "@babel/helper-explode-assignable-expression": { @@ -163,8 +169,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz", "integrity": "sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw==", "requires": { - "@babel/traverse": "7.9.0", - "@babel/types": "7.9.0" + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-function-name": { @@ -172,9 +178,9 @@ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.8.3.tgz", "integrity": "sha512-BCxgX1BC2hD/oBlIFUgOCQDOPV8nSINxCwM3o93xP4P9Fq6aV5sgv2cOOITDMtCfQ+3PvHp3l689XZvAM9QyOA==", "requires": { - "@babel/helper-get-function-arity": "7.8.3", - "@babel/template": "7.8.6", - "@babel/types": "7.9.0" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-get-function-arity": { @@ -182,7 +188,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz", "integrity": "sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.8.3" } }, "@babel/helper-hoist-variables": { @@ -190,7 +196,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz", "integrity": "sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.8.3" } }, "@babel/helper-member-expression-to-functions": { @@ -198,7 +204,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz", "integrity": "sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.8.3" } }, "@babel/helper-module-imports": { @@ -206,7 +212,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz", "integrity": "sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.8.3" } }, "@babel/helper-module-transforms": { @@ -214,13 +220,13 @@ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz", "integrity": "sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA==", "requires": { - "@babel/helper-module-imports": "7.8.3", - "@babel/helper-replace-supers": "7.8.6", - "@babel/helper-simple-access": "7.8.3", - "@babel/helper-split-export-declaration": "7.8.3", - "@babel/template": "7.8.6", - "@babel/types": "7.9.0", - "lodash": "4.17.15" + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-simple-access": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/template": "^7.8.6", + "@babel/types": "^7.9.0", + "lodash": "^4.17.13" } }, "@babel/helper-optimise-call-expression": { @@ -228,7 +234,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz", "integrity": "sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.8.3" } }, "@babel/helper-plugin-utils": { @@ -241,7 +247,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.8.3.tgz", "integrity": "sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ==", "requires": { - "lodash": "4.17.15" + "lodash": "^4.17.13" } }, "@babel/helper-remap-async-to-generator": { @@ -249,11 +255,11 @@ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz", "integrity": "sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA==", "requires": { - "@babel/helper-annotate-as-pure": "7.8.3", - "@babel/helper-wrap-function": "7.8.3", - "@babel/template": "7.8.6", - "@babel/traverse": "7.9.0", - "@babel/types": "7.9.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-wrap-function": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-replace-supers": { @@ -261,10 +267,10 @@ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz", "integrity": "sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA==", "requires": { - "@babel/helper-member-expression-to-functions": "7.8.3", - "@babel/helper-optimise-call-expression": "7.8.3", - "@babel/traverse": "7.9.0", - "@babel/types": "7.9.0" + "@babel/helper-member-expression-to-functions": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/traverse": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/helper-simple-access": { @@ -272,8 +278,8 @@ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz", "integrity": "sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw==", "requires": { - "@babel/template": "7.8.6", - "@babel/types": "7.9.0" + "@babel/template": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helper-split-export-declaration": { @@ -281,7 +287,7 @@ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz", "integrity": "sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.8.3" } }, "@babel/helper-validator-identifier": { @@ -294,10 +300,10 @@ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz", "integrity": "sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ==", "requires": { - "@babel/helper-function-name": "7.8.3", - "@babel/template": "7.8.6", - "@babel/traverse": "7.9.0", - "@babel/types": "7.9.0" + "@babel/helper-function-name": "^7.8.3", + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.8.3", + "@babel/types": "^7.8.3" } }, "@babel/helpers": { @@ -305,9 +311,9 @@ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.9.2.tgz", "integrity": "sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA==", "requires": { - "@babel/template": "7.8.6", - "@babel/traverse": "7.9.0", - "@babel/types": "7.9.0" + "@babel/template": "^7.8.3", + "@babel/traverse": "^7.9.0", + "@babel/types": "^7.9.0" } }, "@babel/highlight": { @@ -315,9 +321,9 @@ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.9.0.tgz", "integrity": "sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ==", "requires": { - "@babel/helper-validator-identifier": "7.9.0", - "chalk": "2.4.2", - "js-tokens": "4.0.0" + "@babel/helper-validator-identifier": "^7.9.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, "@babel/parser": { @@ -330,9 +336,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz", "integrity": "sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/helper-remap-async-to-generator": "7.8.3", - "@babel/plugin-syntax-async-generators": "7.8.4" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0" } }, "@babel/plugin-proposal-class-properties": { @@ -340,8 +346,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz", "integrity": "sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA==", "requires": { - "@babel/helper-create-class-features-plugin": "7.8.6", - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-proposal-decorators": { @@ -349,9 +355,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.8.3.tgz", "integrity": "sha512-e3RvdvS4qPJVTe288DlXjwKflpfy1hr0j5dz5WpIYYeP7vQZg2WfAEIp8k5/Lwis/m5REXEteIz6rrcDtXXG7w==", "requires": { - "@babel/helper-create-class-features-plugin": "7.8.6", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-decorators": "7.8.3" + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-decorators": "^7.8.3" } }, "@babel/plugin-proposal-dynamic-import": { @@ -359,8 +365,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz", "integrity": "sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-dynamic-import": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-dynamic-import": "^7.8.0" } }, "@babel/plugin-proposal-json-strings": { @@ -368,8 +374,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz", "integrity": "sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-json-strings": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.0" } }, "@babel/plugin-proposal-nullish-coalescing-operator": { @@ -377,8 +383,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0" } }, "@babel/plugin-proposal-numeric-separator": { @@ -386,8 +392,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz", "integrity": "sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-numeric-separator": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3" } }, "@babel/plugin-proposal-object-rest-spread": { @@ -395,8 +401,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz", "integrity": "sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-object-rest-spread": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0" } }, "@babel/plugin-proposal-optional-catch-binding": { @@ -404,8 +410,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" } }, "@babel/plugin-proposal-optional-chaining": { @@ -413,8 +419,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz", "integrity": "sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-optional-chaining": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.0" } }, "@babel/plugin-proposal-unicode-property-regex": { @@ -422,8 +428,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz", "integrity": "sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A==", "requires": { - "@babel/helper-create-regexp-features-plugin": "7.8.8", - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.8.8", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-async-generators": { @@ -431,7 +437,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-decorators": { @@ -439,7 +445,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.8.3.tgz", "integrity": "sha512-8Hg4dNNT9/LcA1zQlfwuKR8BUc/if7Q7NkTam9sGTcJphLwpf2g4S42uhspQrIrR+dpzE0dtTqBVFoHl8GtnnQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-dynamic-import": { @@ -447,7 +453,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-flow": { @@ -455,7 +461,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.8.3.tgz", "integrity": "sha512-innAx3bUbA0KSYj2E2MNFSn9hiCeowOFLxlsuhXzw8hMQnzkDomUr9QCD7E9VF60NmnG1sNTuuv6Qf4f8INYsg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-json-strings": { @@ -463,7 +469,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-jsx": { @@ -471,7 +477,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz", "integrity": "sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-nullish-coalescing-operator": { @@ -479,7 +485,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-numeric-separator": { @@ -487,7 +493,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz", "integrity": "sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-object-rest-spread": { @@ -495,7 +501,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-catch-binding": { @@ -503,7 +509,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-optional-chaining": { @@ -511,7 +517,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.0" } }, "@babel/plugin-syntax-top-level-await": { @@ -519,7 +525,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz", "integrity": "sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-syntax-typescript": { @@ -527,7 +533,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.8.3.tgz", "integrity": "sha512-GO1MQ/SGGGoiEXY0e0bSpHimJvxqB7lktLLIq2pv8xG7WZ8IMEle74jIe1FhprHBWjwjZtXHkycDLZXIWM5Wfg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-arrow-functions": { @@ -535,7 +541,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz", "integrity": "sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-async-to-generator": { @@ -543,9 +549,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz", "integrity": "sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ==", "requires": { - "@babel/helper-module-imports": "7.8.3", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/helper-remap-async-to-generator": "7.8.3" + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-remap-async-to-generator": "^7.8.3" } }, "@babel/plugin-transform-block-scoped-functions": { @@ -553,7 +559,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz", "integrity": "sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-block-scoping": { @@ -561,8 +567,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz", "integrity": "sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "lodash": "4.17.15" + "@babel/helper-plugin-utils": "^7.8.3", + "lodash": "^4.17.13" } }, "@babel/plugin-transform-classes": { @@ -570,14 +576,14 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz", "integrity": "sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ==", "requires": { - "@babel/helper-annotate-as-pure": "7.8.3", - "@babel/helper-define-map": "7.8.3", - "@babel/helper-function-name": "7.8.3", - "@babel/helper-optimise-call-expression": "7.8.3", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/helper-replace-supers": "7.8.6", - "@babel/helper-split-export-declaration": "7.8.3", - "globals": "11.12.0" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-define-map": "^7.8.3", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-optimise-call-expression": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.6", + "@babel/helper-split-export-declaration": "^7.8.3", + "globals": "^11.1.0" } }, "@babel/plugin-transform-computed-properties": { @@ -585,7 +591,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz", "integrity": "sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-destructuring": { @@ -593,7 +599,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz", "integrity": "sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-dotall-regex": { @@ -601,8 +607,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz", "integrity": "sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw==", "requires": { - "@babel/helper-create-regexp-features-plugin": "7.8.8", - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-duplicate-keys": { @@ -610,7 +616,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz", "integrity": "sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-exponentiation-operator": { @@ -618,8 +624,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz", "integrity": "sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ==", "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "7.8.3", - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-flow-strip-types": { @@ -627,8 +633,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.9.0.tgz", "integrity": "sha512-7Qfg0lKQhEHs93FChxVLAvhBshOPQDtJUTVHr/ZwQNRccCm4O9D79r9tVSoV8iNwjP1YgfD+e/fgHcPkN1qEQg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-flow": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-flow": "^7.8.3" } }, "@babel/plugin-transform-for-of": { @@ -636,7 +642,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz", "integrity": "sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-function-name": { @@ -644,8 +650,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz", "integrity": "sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ==", "requires": { - "@babel/helper-function-name": "7.8.3", - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-literals": { @@ -653,7 +659,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz", "integrity": "sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-member-expression-literals": { @@ -661,7 +667,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz", "integrity": "sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-modules-amd": { @@ -669,9 +675,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz", "integrity": "sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q==", "requires": { - "@babel/helper-module-transforms": "7.9.0", - "@babel/helper-plugin-utils": "7.8.3", - "babel-plugin-dynamic-import-node": "2.3.0" + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-commonjs": { @@ -679,10 +685,10 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz", "integrity": "sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g==", "requires": { - "@babel/helper-module-transforms": "7.9.0", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/helper-simple-access": "7.8.3", - "babel-plugin-dynamic-import-node": "2.3.0" + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-simple-access": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-systemjs": { @@ -690,10 +696,10 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz", "integrity": "sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ==", "requires": { - "@babel/helper-hoist-variables": "7.8.3", - "@babel/helper-module-transforms": "7.9.0", - "@babel/helper-plugin-utils": "7.8.3", - "babel-plugin-dynamic-import-node": "2.3.0" + "@babel/helper-hoist-variables": "^7.8.3", + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "babel-plugin-dynamic-import-node": "^2.3.0" } }, "@babel/plugin-transform-modules-umd": { @@ -701,8 +707,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz", "integrity": "sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ==", "requires": { - "@babel/helper-module-transforms": "7.9.0", - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-module-transforms": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-named-capturing-groups-regex": { @@ -710,7 +716,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz", "integrity": "sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw==", "requires": { - "@babel/helper-create-regexp-features-plugin": "7.8.8" + "@babel/helper-create-regexp-features-plugin": "^7.8.3" } }, "@babel/plugin-transform-new-target": { @@ -718,7 +724,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz", "integrity": "sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-object-super": { @@ -726,8 +732,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz", "integrity": "sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/helper-replace-supers": "7.8.6" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-replace-supers": "^7.8.3" } }, "@babel/plugin-transform-parameters": { @@ -735,8 +741,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz", "integrity": "sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg==", "requires": { - "@babel/helper-get-function-arity": "7.8.3", - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-get-function-arity": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-property-literals": { @@ -744,7 +750,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz", "integrity": "sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-react-constant-elements": { @@ -752,7 +758,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-constant-elements/-/plugin-transform-react-constant-elements-7.9.0.tgz", "integrity": "sha512-wXMXsToAUOxJuBBEHajqKLFWcCkOSLshTI2ChCFFj1zDd7od4IOxiwLCOObNUvOpkxLpjIuaIdBMmNt6ocCPAw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-react-display-name": { @@ -760,7 +766,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz", "integrity": "sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-react-jsx": { @@ -768,10 +774,10 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.1.tgz", "integrity": "sha512-+xIZ6fPoix7h57CNO/ZeYADchg1tFyX9NDsnmNFFua8e1JNPln156mzS+8AQe1On2X2GLlANHJWHIXbMCqWDkQ==", "requires": { - "@babel/helper-builder-react-jsx": "7.9.0", - "@babel/helper-builder-react-jsx-experimental": "7.9.0", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-jsx": "7.8.3" + "@babel/helper-builder-react-jsx": "^7.9.0", + "@babel/helper-builder-react-jsx-experimental": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-development": { @@ -779,9 +785,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz", "integrity": "sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw==", "requires": { - "@babel/helper-builder-react-jsx-experimental": "7.9.0", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-jsx": "7.8.3" + "@babel/helper-builder-react-jsx-experimental": "^7.9.0", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-self": { @@ -789,8 +795,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz", "integrity": "sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-jsx": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-react-jsx-source": { @@ -798,8 +804,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz", "integrity": "sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-jsx": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-jsx": "^7.8.3" } }, "@babel/plugin-transform-regenerator": { @@ -807,7 +813,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz", "integrity": "sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA==", "requires": { - "regenerator-transform": "0.14.4" + "regenerator-transform": "^0.14.2" } }, "@babel/plugin-transform-reserved-words": { @@ -815,7 +821,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz", "integrity": "sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-runtime": { @@ -823,10 +829,10 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz", "integrity": "sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw==", "requires": { - "@babel/helper-module-imports": "7.8.3", - "@babel/helper-plugin-utils": "7.8.3", - "resolve": "1.15.0", - "semver": "5.7.1" + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "resolve": "^1.8.1", + "semver": "^5.5.1" }, "dependencies": { "semver": { @@ -841,7 +847,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz", "integrity": "sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-spread": { @@ -849,7 +855,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz", "integrity": "sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-sticky-regex": { @@ -857,8 +863,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz", "integrity": "sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/helper-regex": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/helper-regex": "^7.8.3" } }, "@babel/plugin-transform-template-literals": { @@ -866,8 +872,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz", "integrity": "sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ==", "requires": { - "@babel/helper-annotate-as-pure": "7.8.3", - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-annotate-as-pure": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-typeof-symbol": { @@ -875,7 +881,7 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz", "integrity": "sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/plugin-transform-typescript": { @@ -883,9 +889,9 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.9.0.tgz", "integrity": "sha512-GRffJyCu16H3tEhbt9Q4buVFFBqrgS8FzTuhqSxlXNgmqD8aw2xmwtRwrvWXXlw7gHs664uqacsJymHJ9SUE/Q==", "requires": { - "@babel/helper-create-class-features-plugin": "7.8.6", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-syntax-typescript": "7.8.3" + "@babel/helper-create-class-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-syntax-typescript": "^7.8.3" } }, "@babel/plugin-transform-unicode-regex": { @@ -893,8 +899,8 @@ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz", "integrity": "sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw==", "requires": { - "@babel/helper-create-regexp-features-plugin": "7.8.8", - "@babel/helper-plugin-utils": "7.8.3" + "@babel/helper-create-regexp-features-plugin": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3" } }, "@babel/preset-env": { @@ -902,66 +908,66 @@ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.0.tgz", "integrity": "sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ==", "requires": { - "@babel/compat-data": "7.9.0", - "@babel/helper-compilation-targets": "7.8.7", - "@babel/helper-module-imports": "7.8.3", - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-proposal-async-generator-functions": "7.8.3", - "@babel/plugin-proposal-dynamic-import": "7.8.3", - "@babel/plugin-proposal-json-strings": "7.8.3", - "@babel/plugin-proposal-nullish-coalescing-operator": "7.8.3", - "@babel/plugin-proposal-numeric-separator": "7.8.3", - "@babel/plugin-proposal-object-rest-spread": "7.9.0", - "@babel/plugin-proposal-optional-catch-binding": "7.8.3", - "@babel/plugin-proposal-optional-chaining": "7.9.0", - "@babel/plugin-proposal-unicode-property-regex": "7.8.8", - "@babel/plugin-syntax-async-generators": "7.8.4", - "@babel/plugin-syntax-dynamic-import": "7.8.3", - "@babel/plugin-syntax-json-strings": "7.8.3", - "@babel/plugin-syntax-nullish-coalescing-operator": "7.8.3", - "@babel/plugin-syntax-numeric-separator": "7.8.3", - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "7.8.3", - "@babel/plugin-syntax-optional-chaining": "7.8.3", - "@babel/plugin-syntax-top-level-await": "7.8.3", - "@babel/plugin-transform-arrow-functions": "7.8.3", - "@babel/plugin-transform-async-to-generator": "7.8.3", - "@babel/plugin-transform-block-scoped-functions": "7.8.3", - "@babel/plugin-transform-block-scoping": "7.8.3", - "@babel/plugin-transform-classes": "7.9.2", - "@babel/plugin-transform-computed-properties": "7.8.3", - "@babel/plugin-transform-destructuring": "7.8.8", - "@babel/plugin-transform-dotall-regex": "7.8.3", - "@babel/plugin-transform-duplicate-keys": "7.8.3", - "@babel/plugin-transform-exponentiation-operator": "7.8.3", - "@babel/plugin-transform-for-of": "7.9.0", - "@babel/plugin-transform-function-name": "7.8.3", - "@babel/plugin-transform-literals": "7.8.3", - "@babel/plugin-transform-member-expression-literals": "7.8.3", - "@babel/plugin-transform-modules-amd": "7.9.0", - "@babel/plugin-transform-modules-commonjs": "7.9.0", - "@babel/plugin-transform-modules-systemjs": "7.9.0", - "@babel/plugin-transform-modules-umd": "7.9.0", - "@babel/plugin-transform-named-capturing-groups-regex": "7.8.3", - "@babel/plugin-transform-new-target": "7.8.3", - "@babel/plugin-transform-object-super": "7.8.3", - "@babel/plugin-transform-parameters": "7.9.3", - "@babel/plugin-transform-property-literals": "7.8.3", - "@babel/plugin-transform-regenerator": "7.8.7", - "@babel/plugin-transform-reserved-words": "7.8.3", - "@babel/plugin-transform-shorthand-properties": "7.8.3", - "@babel/plugin-transform-spread": "7.8.3", - "@babel/plugin-transform-sticky-regex": "7.8.3", - "@babel/plugin-transform-template-literals": "7.8.3", - "@babel/plugin-transform-typeof-symbol": "7.8.4", - "@babel/plugin-transform-unicode-regex": "7.8.3", - "@babel/preset-modules": "0.1.3", - "@babel/types": "7.9.0", - "browserslist": "4.11.0", - "core-js-compat": "3.6.4", - "invariant": "2.2.4", - "levenary": "1.1.1", - "semver": "5.7.1" + "@babel/compat-data": "^7.9.0", + "@babel/helper-compilation-targets": "^7.8.7", + "@babel/helper-module-imports": "^7.8.3", + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-proposal-async-generator-functions": "^7.8.3", + "@babel/plugin-proposal-dynamic-import": "^7.8.3", + "@babel/plugin-proposal-json-strings": "^7.8.3", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-proposal-numeric-separator": "^7.8.3", + "@babel/plugin-proposal-object-rest-spread": "^7.9.0", + "@babel/plugin-proposal-optional-catch-binding": "^7.8.3", + "@babel/plugin-proposal-optional-chaining": "^7.9.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.8.3", + "@babel/plugin-syntax-async-generators": "^7.8.0", + "@babel/plugin-syntax-dynamic-import": "^7.8.0", + "@babel/plugin-syntax-json-strings": "^7.8.0", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.0", + "@babel/plugin-syntax-numeric-separator": "^7.8.0", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0", + "@babel/plugin-syntax-optional-chaining": "^7.8.0", + "@babel/plugin-syntax-top-level-await": "^7.8.3", + "@babel/plugin-transform-arrow-functions": "^7.8.3", + "@babel/plugin-transform-async-to-generator": "^7.8.3", + "@babel/plugin-transform-block-scoped-functions": "^7.8.3", + "@babel/plugin-transform-block-scoping": "^7.8.3", + "@babel/plugin-transform-classes": "^7.9.0", + "@babel/plugin-transform-computed-properties": "^7.8.3", + "@babel/plugin-transform-destructuring": "^7.8.3", + "@babel/plugin-transform-dotall-regex": "^7.8.3", + "@babel/plugin-transform-duplicate-keys": "^7.8.3", + "@babel/plugin-transform-exponentiation-operator": "^7.8.3", + "@babel/plugin-transform-for-of": "^7.9.0", + "@babel/plugin-transform-function-name": "^7.8.3", + "@babel/plugin-transform-literals": "^7.8.3", + "@babel/plugin-transform-member-expression-literals": "^7.8.3", + "@babel/plugin-transform-modules-amd": "^7.9.0", + "@babel/plugin-transform-modules-commonjs": "^7.9.0", + "@babel/plugin-transform-modules-systemjs": "^7.9.0", + "@babel/plugin-transform-modules-umd": "^7.9.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.8.3", + "@babel/plugin-transform-new-target": "^7.8.3", + "@babel/plugin-transform-object-super": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.8.7", + "@babel/plugin-transform-property-literals": "^7.8.3", + "@babel/plugin-transform-regenerator": "^7.8.7", + "@babel/plugin-transform-reserved-words": "^7.8.3", + "@babel/plugin-transform-shorthand-properties": "^7.8.3", + "@babel/plugin-transform-spread": "^7.8.3", + "@babel/plugin-transform-sticky-regex": "^7.8.3", + "@babel/plugin-transform-template-literals": "^7.8.3", + "@babel/plugin-transform-typeof-symbol": "^7.8.4", + "@babel/plugin-transform-unicode-regex": "^7.8.3", + "@babel/preset-modules": "^0.1.3", + "@babel/types": "^7.9.0", + "browserslist": "^4.9.1", + "core-js-compat": "^3.6.2", + "invariant": "^2.2.2", + "levenary": "^1.1.1", + "semver": "^5.5.0" }, "dependencies": { "semver": { @@ -976,11 +982,11 @@ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.3.tgz", "integrity": "sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-proposal-unicode-property-regex": "7.8.8", - "@babel/plugin-transform-dotall-regex": "7.8.3", - "@babel/types": "7.9.0", - "esutils": "2.0.3" + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" } }, "@babel/preset-react": { @@ -988,12 +994,12 @@ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.9.1.tgz", "integrity": "sha512-aJBYF23MPj0RNdp/4bHnAP0NVqqZRr9kl0NAOP4nJCex6OYVio59+dnQzsAWFuogdLyeaKA1hmfUIVZkY5J+TQ==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-transform-react-display-name": "7.8.3", - "@babel/plugin-transform-react-jsx": "7.9.1", - "@babel/plugin-transform-react-jsx-development": "7.9.0", - "@babel/plugin-transform-react-jsx-self": "7.9.0", - "@babel/plugin-transform-react-jsx-source": "7.9.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-transform-react-display-name": "^7.8.3", + "@babel/plugin-transform-react-jsx": "^7.9.1", + "@babel/plugin-transform-react-jsx-development": "^7.9.0", + "@babel/plugin-transform-react-jsx-self": "^7.9.0", + "@babel/plugin-transform-react-jsx-source": "^7.9.0" } }, "@babel/preset-typescript": { @@ -1001,8 +1007,8 @@ "resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.9.0.tgz", "integrity": "sha512-S4cueFnGrIbvYJgwsVFKdvOmpiL0XGw9MFW9D0vgRys5g36PBhZRL8NX8Gr2akz8XRtzq6HuDXPD/1nniagNUg==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "@babel/plugin-transform-typescript": "7.9.0" + "@babel/helper-plugin-utils": "^7.8.3", + "@babel/plugin-transform-typescript": "^7.9.0" } }, "@babel/runtime": { @@ -1010,7 +1016,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.2.tgz", "integrity": "sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q==", "requires": { - "regenerator-runtime": "0.13.5" + "regenerator-runtime": "^0.13.4" } }, "@babel/runtime-corejs3": { @@ -1018,8 +1024,8 @@ "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz", "integrity": "sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA==", "requires": { - "core-js-pure": "3.6.4", - "regenerator-runtime": "0.13.5" + "core-js-pure": "^3.0.0", + "regenerator-runtime": "^0.13.4" } }, "@babel/template": { @@ -1027,9 +1033,9 @@ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.8.6.tgz", "integrity": "sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg==", "requires": { - "@babel/code-frame": "7.8.3", - "@babel/parser": "7.9.3", - "@babel/types": "7.9.0" + "@babel/code-frame": "^7.8.3", + "@babel/parser": "^7.8.6", + "@babel/types": "^7.8.6" } }, "@babel/traverse": { @@ -1037,15 +1043,15 @@ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.9.0.tgz", "integrity": "sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w==", "requires": { - "@babel/code-frame": "7.8.3", - "@babel/generator": "7.9.3", - "@babel/helper-function-name": "7.8.3", - "@babel/helper-split-export-declaration": "7.8.3", - "@babel/parser": "7.9.3", - "@babel/types": "7.9.0", - "debug": "4.1.1", - "globals": "11.12.0", - "lodash": "4.17.15" + "@babel/code-frame": "^7.8.3", + "@babel/generator": "^7.9.0", + "@babel/helper-function-name": "^7.8.3", + "@babel/helper-split-export-declaration": "^7.8.3", + "@babel/parser": "^7.9.0", + "@babel/types": "^7.9.0", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.13" } }, "@babel/types": { @@ -1053,9 +1059,9 @@ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.9.0.tgz", "integrity": "sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng==", "requires": { - "@babel/helper-validator-identifier": "7.9.0", - "lodash": "4.17.15", - "to-fast-properties": "2.0.0" + "@babel/helper-validator-identifier": "^7.9.0", + "lodash": "^4.17.13", + "to-fast-properties": "^2.0.0" } }, "@cnakazawa/watch": { @@ -1063,8 +1069,8 @@ "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", "requires": { - "exec-sh": "0.3.4", - "minimist": "1.2.5" + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" } }, "@csstools/convert-colors": { @@ -1077,6 +1083,33 @@ "resolved": "https://registry.npmjs.org/@csstools/normalize.css/-/normalize.css-10.1.0.tgz", "integrity": "sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==" }, + "@develar/schema-utils": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@develar/schema-utils/-/schema-utils-2.6.5.tgz", + "integrity": "sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==", + "dev": true, + "requires": { + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" + } + }, + "@electron/get": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", + "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^2.0.2", + "global-tunnel-ng": "^2.7.1", + "got": "^9.6.0", + "progress": "^2.0.3", + "sanitize-filename": "^1.6.2", + "sumchecker": "^3.0.1" + } + }, "@hapi/address": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/@hapi/address/-/address-2.1.4.tgz", @@ -1097,10 +1130,10 @@ "resolved": "https://registry.npmjs.org/@hapi/joi/-/joi-15.1.1.tgz", "integrity": "sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ==", "requires": { - "@hapi/address": "2.1.4", - "@hapi/bourne": "1.3.2", - "@hapi/hoek": "8.5.1", - "@hapi/topo": "3.1.6" + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" } }, "@hapi/topo": { @@ -1108,7 +1141,7 @@ "resolved": "https://registry.npmjs.org/@hapi/topo/-/topo-3.1.6.tgz", "integrity": "sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ==", "requires": { - "@hapi/hoek": "8.5.1" + "@hapi/hoek": "^8.3.0" } }, "@jest/console": { @@ -1116,9 +1149,9 @@ "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.9.0.tgz", "integrity": "sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ==", "requires": { - "@jest/source-map": "24.9.0", - "chalk": "2.4.2", - "slash": "2.0.0" + "@jest/source-map": "^24.9.0", + "chalk": "^2.0.1", + "slash": "^2.0.0" } }, "@jest/core": { @@ -1126,34 +1159,34 @@ "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.9.0.tgz", "integrity": "sha512-Fogg3s4wlAr1VX7q+rhV9RVnUv5tD7VuWfYy1+whMiWUrvl7U3QJSJyWcDio9Lq2prqYsZaeTv2Rz24pWGkJ2A==", "requires": { - "@jest/console": "24.9.0", - "@jest/reporters": "24.9.0", - "@jest/test-result": "24.9.0", - "@jest/transform": "24.9.0", - "@jest/types": "24.9.0", - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "exit": "0.1.2", - "graceful-fs": "4.2.3", - "jest-changed-files": "24.9.0", - "jest-config": "24.9.0", - "jest-haste-map": "24.9.0", - "jest-message-util": "24.9.0", - "jest-regex-util": "24.9.0", - "jest-resolve": "24.9.0", - "jest-resolve-dependencies": "24.9.0", - "jest-runner": "24.9.0", - "jest-runtime": "24.9.0", - "jest-snapshot": "24.9.0", - "jest-util": "24.9.0", - "jest-validate": "24.9.0", - "jest-watcher": "24.9.0", - "micromatch": "3.1.10", - "p-each-series": "1.0.0", - "realpath-native": "1.1.0", - "rimraf": "2.6.3", - "slash": "2.0.0", - "strip-ansi": "5.2.0" + "@jest/console": "^24.7.1", + "@jest/reporters": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "graceful-fs": "^4.1.15", + "jest-changed-files": "^24.9.0", + "jest-config": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-resolve-dependencies": "^24.9.0", + "jest-runner": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "jest-watcher": "^24.9.0", + "micromatch": "^3.1.10", + "p-each-series": "^1.0.0", + "realpath-native": "^1.1.0", + "rimraf": "^2.5.4", + "slash": "^2.0.0", + "strip-ansi": "^5.0.0" }, "dependencies": { "ansi-escapes": { @@ -1168,10 +1201,10 @@ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.9.0.tgz", "integrity": "sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ==", "requires": { - "@jest/fake-timers": "24.9.0", - "@jest/transform": "24.9.0", - "@jest/types": "24.9.0", - "jest-mock": "24.9.0" + "@jest/fake-timers": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0" } }, "@jest/fake-timers": { @@ -1179,9 +1212,9 @@ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.9.0.tgz", "integrity": "sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A==", "requires": { - "@jest/types": "24.9.0", - "jest-message-util": "24.9.0", - "jest-mock": "24.9.0" + "@jest/types": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0" } }, "@jest/reporters": { @@ -1189,27 +1222,27 @@ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.9.0.tgz", "integrity": "sha512-mu4X0yjaHrffOsWmVLzitKmmmWSQ3GGuefgNscUSWNiUNcEOSEQk9k3pERKEQVBb0Cnn88+UESIsZEMH3o88Gw==", "requires": { - "@jest/environment": "24.9.0", - "@jest/test-result": "24.9.0", - "@jest/transform": "24.9.0", - "@jest/types": "24.9.0", - "chalk": "2.4.2", - "exit": "0.1.2", - "glob": "7.1.6", - "istanbul-lib-coverage": "2.0.5", - "istanbul-lib-instrument": "3.3.0", - "istanbul-lib-report": "2.0.8", - "istanbul-lib-source-maps": "3.0.6", - "istanbul-reports": "2.2.7", - "jest-haste-map": "24.9.0", - "jest-resolve": "24.9.0", - "jest-runtime": "24.9.0", - "jest-util": "24.9.0", - "jest-worker": "24.9.0", - "node-notifier": "5.4.3", - "slash": "2.0.0", - "source-map": "0.6.1", - "string-length": "2.0.0" + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.2", + "istanbul-lib-coverage": "^2.0.2", + "istanbul-lib-instrument": "^3.0.1", + "istanbul-lib-report": "^2.0.4", + "istanbul-lib-source-maps": "^3.0.1", + "istanbul-reports": "^2.2.6", + "jest-haste-map": "^24.9.0", + "jest-resolve": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.6.0", + "node-notifier": "^5.4.2", + "slash": "^2.0.0", + "source-map": "^0.6.0", + "string-length": "^2.0.0" }, "dependencies": { "source-map": { @@ -1224,9 +1257,9 @@ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.9.0.tgz", "integrity": "sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg==", "requires": { - "callsites": "3.1.0", - "graceful-fs": "4.2.3", - "source-map": "0.6.1" + "callsites": "^3.0.0", + "graceful-fs": "^4.1.15", + "source-map": "^0.6.0" }, "dependencies": { "callsites": { @@ -1246,9 +1279,9 @@ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.9.0.tgz", "integrity": "sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA==", "requires": { - "@jest/console": "24.9.0", - "@jest/types": "24.9.0", - "@types/istanbul-lib-coverage": "2.0.1" + "@jest/console": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/istanbul-lib-coverage": "^2.0.0" } }, "@jest/test-sequencer": { @@ -1256,10 +1289,10 @@ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz", "integrity": "sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A==", "requires": { - "@jest/test-result": "24.9.0", - "jest-haste-map": "24.9.0", - "jest-runner": "24.9.0", - "jest-runtime": "24.9.0" + "@jest/test-result": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-runner": "^24.9.0", + "jest-runtime": "^24.9.0" } }, "@jest/transform": { @@ -1267,21 +1300,21 @@ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.9.0.tgz", "integrity": "sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ==", "requires": { - "@babel/core": "7.9.0", - "@jest/types": "24.9.0", - "babel-plugin-istanbul": "5.2.0", - "chalk": "2.4.2", - "convert-source-map": "1.7.0", - "fast-json-stable-stringify": "2.1.0", - "graceful-fs": "4.2.3", - "jest-haste-map": "24.9.0", - "jest-regex-util": "24.9.0", - "jest-util": "24.9.0", - "micromatch": "3.1.10", - "pirates": "4.0.1", - "realpath-native": "1.1.0", - "slash": "2.0.0", - "source-map": "0.6.1", + "@babel/core": "^7.1.0", + "@jest/types": "^24.9.0", + "babel-plugin-istanbul": "^5.1.0", + "chalk": "^2.0.1", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.1.15", + "jest-haste-map": "^24.9.0", + "jest-regex-util": "^24.9.0", + "jest-util": "^24.9.0", + "micromatch": "^3.1.10", + "pirates": "^4.0.1", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "source-map": "^0.6.1", "write-file-atomic": "2.4.1" }, "dependencies": { @@ -1297,9 +1330,9 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.9.0.tgz", "integrity": "sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw==", "requires": { - "@types/istanbul-lib-coverage": "2.0.1", - "@types/istanbul-reports": "1.1.1", - "@types/yargs": "13.0.8" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^13.0.0" } }, "@mrmlnc/readdir-enhanced": { @@ -1307,8 +1340,8 @@ "resolved": "https://registry.npmjs.org/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz", "integrity": "sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==", "requires": { - "call-me-maybe": "1.0.1", - "glob-to-regexp": "0.3.0" + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" } }, "@nodelib/fs.stat": { @@ -1317,9 +1350,9 @@ "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, "@popperjs/core": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.2.3.tgz", - "integrity": "sha512-68EQPzEZRrpFavFX40V2+80eqzQIhgza2AGTXW+i8laxSA4It+Y13rmZInrAYoIujp8YO7YJPbvgOesDZcIulQ==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.4.0.tgz", + "integrity": "sha512-NMrDy6EWh9TPdSRiHmHH2ye1v5U0gBD7pRYwSwJvomx7Bm4GG04vu63dYiVzebLOx2obPpJugew06xVP0Nk7hA==" }, "@restart/context": { "version": "2.1.4", @@ -1331,8 +1364,8 @@ "resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.22.tgz", "integrity": "sha512-tW0T3hP6emYNOc76/iC96rlu+f7JYLSVk/Wnn+7dj1gJUcw4CkQNLy16vx2mBLtVKsFMZ9miVEZXat8blruDHQ==", "requires": { - "lodash": "4.17.15", - "lodash-es": "4.17.15" + "lodash": "^4.17.15", + "lodash-es": "^4.17.15" } }, "@sheerun/mutationobserver-shim": { @@ -1340,6 +1373,12 @@ "resolved": "https://registry.npmjs.org/@sheerun/mutationobserver-shim/-/mutationobserver-shim-0.3.3.tgz", "integrity": "sha512-DetpxZw1fzPD5xUBrIAoplLChO2VB8DlL5Gg+I1IR9b2wPqYIca2WSUxL5g1vLeR4MsQq1NeWriXAVffV+U1Fw==" }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", + "dev": true + }, "@svgr/babel-plugin-add-jsx-attribute": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", @@ -1385,14 +1424,14 @@ "resolved": "https://registry.npmjs.org/@svgr/babel-preset/-/babel-preset-4.3.3.tgz", "integrity": "sha512-6PG80tdz4eAlYUN3g5GZiUjg2FMcp+Wn6rtnz5WJG9ITGEF1pmFdzq02597Hn0OmnQuCVaBYQE1OVFAnwOl+0A==", "requires": { - "@svgr/babel-plugin-add-jsx-attribute": "4.2.0", - "@svgr/babel-plugin-remove-jsx-attribute": "4.2.0", - "@svgr/babel-plugin-remove-jsx-empty-expression": "4.2.0", - "@svgr/babel-plugin-replace-jsx-attribute-value": "4.2.0", - "@svgr/babel-plugin-svg-dynamic-title": "4.3.3", - "@svgr/babel-plugin-svg-em-dimensions": "4.2.0", - "@svgr/babel-plugin-transform-react-native-svg": "4.2.0", - "@svgr/babel-plugin-transform-svg-component": "4.2.0" + "@svgr/babel-plugin-add-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-attribute": "^4.2.0", + "@svgr/babel-plugin-remove-jsx-empty-expression": "^4.2.0", + "@svgr/babel-plugin-replace-jsx-attribute-value": "^4.2.0", + "@svgr/babel-plugin-svg-dynamic-title": "^4.3.3", + "@svgr/babel-plugin-svg-em-dimensions": "^4.2.0", + "@svgr/babel-plugin-transform-react-native-svg": "^4.2.0", + "@svgr/babel-plugin-transform-svg-component": "^4.2.0" } }, "@svgr/core": { @@ -1400,9 +1439,9 @@ "resolved": "https://registry.npmjs.org/@svgr/core/-/core-4.3.3.tgz", "integrity": "sha512-qNuGF1QON1626UCaZamWt5yedpgOytvLj5BQZe2j1k1B8DUG4OyugZyfEwBeXozCUwhLEpsrgPrE+eCu4fY17w==", "requires": { - "@svgr/plugin-jsx": "4.3.3", - "camelcase": "5.3.1", - "cosmiconfig": "5.2.1" + "@svgr/plugin-jsx": "^4.3.3", + "camelcase": "^5.3.1", + "cosmiconfig": "^5.2.1" } }, "@svgr/hast-util-to-babel-ast": { @@ -1410,7 +1449,7 @@ "resolved": "https://registry.npmjs.org/@svgr/hast-util-to-babel-ast/-/hast-util-to-babel-ast-4.3.2.tgz", "integrity": "sha512-JioXclZGhFIDL3ddn4Kiq8qEqYM2PyDKV0aYno8+IXTLuYt6TOgHUbUAAFvqtb0Xn37NwP0BTHglejFoYr8RZg==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.4.4" } }, "@svgr/plugin-jsx": { @@ -1418,10 +1457,10 @@ "resolved": "https://registry.npmjs.org/@svgr/plugin-jsx/-/plugin-jsx-4.3.3.tgz", "integrity": "sha512-cLOCSpNWQnDB1/v+SUENHH7a0XY09bfuMKdq9+gYvtuwzC2rU4I0wKGFEp1i24holdQdwodCtDQdFtJiTCWc+w==", "requires": { - "@babel/core": "7.9.0", - "@svgr/babel-preset": "4.3.3", - "@svgr/hast-util-to-babel-ast": "4.3.2", - "svg-parser": "2.0.4" + "@babel/core": "^7.4.5", + "@svgr/babel-preset": "^4.3.3", + "@svgr/hast-util-to-babel-ast": "^4.3.2", + "svg-parser": "^2.0.0" } }, "@svgr/plugin-svgo": { @@ -1429,9 +1468,9 @@ "resolved": "https://registry.npmjs.org/@svgr/plugin-svgo/-/plugin-svgo-4.3.1.tgz", "integrity": "sha512-PrMtEDUWjX3Ea65JsVCwTIXuSqa3CG9px+DluF1/eo9mlDrgrtFE7NE/DjdhjJgSM9wenlVBzkzneSIUgfUI/w==", "requires": { - "cosmiconfig": "5.2.1", - "merge-deep": "3.0.2", - "svgo": "1.3.2" + "cosmiconfig": "^5.2.1", + "merge-deep": "^3.0.2", + "svgo": "^1.2.2" } }, "@svgr/webpack": { @@ -1439,14 +1478,23 @@ "resolved": "https://registry.npmjs.org/@svgr/webpack/-/webpack-4.3.3.tgz", "integrity": "sha512-bjnWolZ6KVsHhgyCoYRFmbd26p8XVbulCzSG53BDQqAr+JOAderYK7CuYrB3bDjHJuF6LJ7Wrr42+goLRV9qIg==", "requires": { - "@babel/core": "7.9.0", - "@babel/plugin-transform-react-constant-elements": "7.9.0", - "@babel/preset-env": "7.9.0", - "@babel/preset-react": "7.9.1", - "@svgr/core": "4.3.3", - "@svgr/plugin-jsx": "4.3.3", - "@svgr/plugin-svgo": "4.3.1", - "loader-utils": "1.4.0" + "@babel/core": "^7.4.5", + "@babel/plugin-transform-react-constant-elements": "^7.0.0", + "@babel/preset-env": "^7.4.5", + "@babel/preset-react": "^7.0.0", + "@svgr/core": "^4.3.3", + "@svgr/plugin-jsx": "^4.3.3", + "@svgr/plugin-svgo": "^4.3.1", + "loader-utils": "^1.2.3" + } + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "dev": true, + "requires": { + "defer-to-connect": "^1.0.1" } }, "@testing-library/dom": { @@ -1454,13 +1502,13 @@ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-6.16.0.tgz", "integrity": "sha512-lBD88ssxqEfz0wFL6MeUyyWZfV/2cjEZZV3YRpb2IoJRej/4f1jB0TzqIOznTpfR1r34CNesrubxwIlAQ8zgPA==", "requires": { - "@babel/runtime": "7.9.2", - "@sheerun/mutationobserver-shim": "0.3.3", - "@types/testing-library__dom": "6.14.0", - "aria-query": "4.0.2", - "dom-accessibility-api": "0.3.0", - "pretty-format": "25.1.0", - "wait-for-expect": "3.0.2" + "@babel/runtime": "^7.8.4", + "@sheerun/mutationobserver-shim": "^0.3.2", + "@types/testing-library__dom": "^6.12.1", + "aria-query": "^4.0.2", + "dom-accessibility-api": "^0.3.0", + "pretty-format": "^25.1.0", + "wait-for-expect": "^3.0.2" }, "dependencies": { "@jest/types": { @@ -1468,10 +1516,10 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.1.0.tgz", "integrity": "sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA==", "requires": { - "@types/istanbul-lib-coverage": "2.0.1", - "@types/istanbul-reports": "1.1.1", - "@types/yargs": "15.0.4", - "chalk": "3.0.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" } }, "@types/yargs": { @@ -1479,7 +1527,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", "requires": { - "@types/yargs-parser": "15.0.0" + "@types/yargs-parser": "*" } }, "ansi-styles": { @@ -1487,8 +1535,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "@types/color-name": "1.1.1", - "color-convert": "2.0.1" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, "aria-query": { @@ -1496,8 +1544,8 @@ "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.0.2.tgz", "integrity": "sha512-S1G1V790fTaigUSM/Gd0NngzEfiMy9uTUfMyHhKhVyy4cH5O/eTuR01ydhGL0z4Za1PXFTRGH3qL8VhUQuEO5w==", "requires": { - "@babel/runtime": "7.9.2", - "@babel/runtime-corejs3": "7.9.2" + "@babel/runtime": "^7.7.4", + "@babel/runtime-corejs3": "^7.7.4" } }, "chalk": { @@ -1505,8 +1553,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "ansi-styles": "4.2.1", - "supports-color": "7.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "color-convert": { @@ -1514,7 +1562,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.4" + "color-name": "~1.1.4" } }, "color-name": { @@ -1532,10 +1580,10 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", "requires": { - "@jest/types": "25.1.0", - "ansi-regex": "5.0.0", - "ansi-styles": "4.2.1", - "react-is": "16.13.1" + "@jest/types": "^25.1.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" } }, "supports-color": { @@ -1543,7 +1591,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "has-flag": "4.0.0" + "has-flag": "^4.0.0" } } } @@ -1553,15 +1601,15 @@ "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-4.2.4.tgz", "integrity": "sha512-j31Bn0rQo12fhCWOUWy9fl7wtqkp7In/YP2p5ZFyRuiiB9Qs3g+hS4gAmDWONbAHcRmVooNJ5eOHQDCOmUFXHg==", "requires": { - "@babel/runtime": "7.9.2", - "chalk": "2.4.2", - "css": "2.2.4", - "css.escape": "1.5.1", - "jest-diff": "24.9.0", - "jest-matcher-utils": "24.9.0", - "lodash": "4.17.15", - "pretty-format": "24.9.0", - "redent": "3.0.0" + "@babel/runtime": "^7.5.1", + "chalk": "^2.4.1", + "css": "^2.2.3", + "css.escape": "^1.5.1", + "jest-diff": "^24.0.0", + "jest-matcher-utils": "^24.0.0", + "lodash": "^4.17.11", + "pretty-format": "^24.0.0", + "redent": "^3.0.0" } }, "@testing-library/react": { @@ -1569,9 +1617,9 @@ "resolved": "https://registry.npmjs.org/@testing-library/react/-/react-9.5.0.tgz", "integrity": "sha512-di1b+D0p+rfeboHO5W7gTVeZDIK5+maEgstrZbWZSSvxDyfDRkkyBE1AJR5Psd6doNldluXlCWqXriUfqu/9Qg==", "requires": { - "@babel/runtime": "7.9.2", - "@testing-library/dom": "6.16.0", - "@types/testing-library__react": "9.1.3" + "@babel/runtime": "^7.8.4", + "@testing-library/dom": "^6.15.0", + "@types/testing-library__react": "^9.1.2" } }, "@testing-library/user-event": { @@ -1584,11 +1632,11 @@ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.6.tgz", "integrity": "sha512-tTnhWszAqvXnhW7m5jQU9PomXSiKXk2sFxpahXvI20SZKu9ylPi8WtIxueZ6ehDWikPT0jeFujMj3X4ZHuf3Tg==", "requires": { - "@babel/parser": "7.9.3", - "@babel/types": "7.9.0", - "@types/babel__generator": "7.6.1", - "@types/babel__template": "7.0.2", - "@types/babel__traverse": "7.0.9" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" } }, "@types/babel__generator": { @@ -1596,7 +1644,7 @@ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.1.tgz", "integrity": "sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.0.0" } }, "@types/babel__template": { @@ -1604,8 +1652,8 @@ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", "requires": { - "@babel/parser": "7.9.3", - "@babel/types": "7.9.0" + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" } }, "@types/babel__traverse": { @@ -1613,7 +1661,7 @@ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.9.tgz", "integrity": "sha512-jEFQ8L1tuvPjOI8lnpaf73oCJe+aoxL6ygqSy6c8LcW98zaC+4mzWuQIRCEvKeCOu+lbqdXcg4Uqmm1S8AP1tw==", "requires": { - "@babel/types": "7.9.0" + "@babel/types": "^7.3.0" } }, "@types/color-name": { @@ -1621,6 +1669,12 @@ "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz", "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==" }, + "@types/debug": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.5.tgz", + "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==", + "dev": true + }, "@types/eslint-visitor-keys": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", @@ -1631,14 +1685,23 @@ "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" }, + "@types/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", "requires": { - "@types/events": "3.0.0", - "@types/minimatch": "3.0.3", - "@types/node": "13.9.3" + "@types/events": "*", + "@types/minimatch": "*", + "@types/node": "*" } }, "@types/istanbul-lib-coverage": { @@ -1651,7 +1714,7 @@ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "requires": { - "@types/istanbul-lib-coverage": "2.0.1" + "@types/istanbul-lib-coverage": "*" } }, "@types/istanbul-reports": { @@ -1659,8 +1722,8 @@ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz", "integrity": "sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA==", "requires": { - "@types/istanbul-lib-coverage": "2.0.1", - "@types/istanbul-lib-report": "3.0.0" + "@types/istanbul-lib-coverage": "*", + "@types/istanbul-lib-report": "*" } }, "@types/json-schema": { @@ -1698,8 +1761,8 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.25.tgz", "integrity": "sha512-Dlj2V72cfYLPNscIG3/SMUOzhzj7GK3bpSrfefwt2YT9GLynvLCCZjbhyF6VsT0q0+aRACRX03TDJGb7cA0cqg==", "requires": { - "@types/prop-types": "15.7.3", - "csstype": "2.6.9" + "@types/prop-types": "*", + "csstype": "^2.2.0" } }, "@types/react-dom": { @@ -1707,7 +1770,7 @@ "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-16.9.5.tgz", "integrity": "sha512-BX6RQ8s9D+2/gDhxrj8OW+YD4R+8hj7FEM/OJHGNR0KipE1h1mSsf39YeyC81qafkq+N3rU3h3RFbLSwE5VqUg==", "requires": { - "@types/react": "16.9.25" + "@types/react": "*" } }, "@types/stack-utils": { @@ -1720,7 +1783,7 @@ "resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-6.14.0.tgz", "integrity": "sha512-sMl7OSv0AvMOqn1UJ6j1unPMIHRXen0Ita1ujnMX912rrOcawe4f7wu0Zt9GIQhBhJvH2BaibqFgQ3lP+Pj2hA==", "requires": { - "pretty-format": "24.9.0" + "pretty-format": "^24.3.0" } }, "@types/testing-library__react": { @@ -1728,9 +1791,9 @@ "resolved": "https://registry.npmjs.org/@types/testing-library__react/-/testing-library__react-9.1.3.tgz", "integrity": "sha512-iCdNPKU3IsYwRK9JieSYAiX0+aYDXOGAmrC/3/M7AqqSDKnWWVv07X+Zk1uFSL7cMTUYzv4lQRfohucEocn5/w==", "requires": { - "@types/react-dom": "16.9.5", - "@types/testing-library__dom": "6.14.0", - "pretty-format": "25.1.0" + "@types/react-dom": "*", + "@types/testing-library__dom": "*", + "pretty-format": "^25.1.0" }, "dependencies": { "@jest/types": { @@ -1738,10 +1801,10 @@ "resolved": "https://registry.npmjs.org/@jest/types/-/types-25.1.0.tgz", "integrity": "sha512-VpOtt7tCrgvamWZh1reVsGADujKigBUFTi19mlRjqEGsE8qH4r3s+skY33dNdXOwyZIvuftZ5tqdF1IgsMejMA==", "requires": { - "@types/istanbul-lib-coverage": "2.0.1", - "@types/istanbul-reports": "1.1.1", - "@types/yargs": "15.0.4", - "chalk": "3.0.0" + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^1.1.1", + "@types/yargs": "^15.0.0", + "chalk": "^3.0.0" } }, "@types/yargs": { @@ -1749,7 +1812,7 @@ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", "requires": { - "@types/yargs-parser": "15.0.0" + "@types/yargs-parser": "*" } }, "ansi-styles": { @@ -1757,8 +1820,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "@types/color-name": "1.1.1", - "color-convert": "2.0.1" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, "chalk": { @@ -1766,8 +1829,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "ansi-styles": "4.2.1", - "supports-color": "7.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "color-convert": { @@ -1775,7 +1838,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.4" + "color-name": "~1.1.4" } }, "color-name": { @@ -1793,10 +1856,10 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-25.1.0.tgz", "integrity": "sha512-46zLRSGLd02Rp+Lhad9zzuNZ+swunitn8zIpfD2B4OPCRLXbM87RJT2aBLBWYOznNUML/2l/ReMyWNC80PJBUQ==", "requires": { - "@jest/types": "25.1.0", - "ansi-regex": "5.0.0", - "ansi-styles": "4.2.1", - "react-is": "16.13.1" + "@jest/types": "^25.1.0", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^16.12.0" } }, "supports-color": { @@ -1804,17 +1867,22 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "has-flag": "4.0.0" + "has-flag": "^4.0.0" } } } }, + "@types/warning": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz", + "integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI=" + }, "@types/yargs": { "version": "13.0.8", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-13.0.8.tgz", "integrity": "sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA==", "requires": { - "@types/yargs-parser": "15.0.0" + "@types/yargs-parser": "*" } }, "@types/yargs-parser": { @@ -1828,9 +1896,9 @@ "integrity": "sha512-W2YyMtjmlrOjtXc+FtTelVs9OhuR6OlYc4XKIslJ8PUJOqgYYAPRJhAqkYRQo3G4sjvG8jSodsNycEn4W2gHUw==", "requires": { "@typescript-eslint/experimental-utils": "2.25.0", - "functional-red-black-tree": "1.0.1", - "regexpp": "3.0.0", - "tsutils": "3.17.1" + "functional-red-black-tree": "^1.0.1", + "regexpp": "^3.0.0", + "tsutils": "^3.17.1" } }, "@typescript-eslint/experimental-utils": { @@ -1838,10 +1906,10 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.25.0.tgz", "integrity": "sha512-0IZ4ZR5QkFYbaJk+8eJ2kYeA+1tzOE1sBjbwwtSV85oNWYUBep+EyhlZ7DLUCyhMUGuJpcCCFL0fDtYAP1zMZw==", "requires": { - "@types/json-schema": "7.0.4", + "@types/json-schema": "^7.0.3", "@typescript-eslint/typescript-estree": "2.25.0", - "eslint-scope": "5.0.0", - "eslint-utils": "2.0.0" + "eslint-scope": "^5.0.0", + "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { @@ -1849,10 +1917,10 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.25.0.tgz", "integrity": "sha512-mccBLaBSpNVgp191CP5W+8U1crTyXsRziWliCqzj02kpxdjKMvFHGJbK33NroquH3zB/gZ8H511HEsJBa2fNEg==", "requires": { - "@types/eslint-visitor-keys": "1.0.0", + "@types/eslint-visitor-keys": "^1.0.0", "@typescript-eslint/experimental-utils": "2.25.0", "@typescript-eslint/typescript-estree": "2.25.0", - "eslint-visitor-keys": "1.1.0" + "eslint-visitor-keys": "^1.1.0" } }, "@typescript-eslint/typescript-estree": { @@ -1860,13 +1928,13 @@ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.25.0.tgz", "integrity": "sha512-VUksmx5lDxSi6GfmwSK7SSoIKSw9anukWWNitQPqt58LuYrKalzsgeuignbqnB+rK/xxGlSsCy8lYnwFfB6YJg==", "requires": { - "debug": "4.1.1", - "eslint-visitor-keys": "1.1.0", - "glob": "7.1.6", - "is-glob": "4.0.1", - "lodash": "4.17.15", - "semver": "6.3.0", - "tsutils": "3.17.1" + "debug": "^4.1.1", + "eslint-visitor-keys": "^1.1.0", + "glob": "^7.1.6", + "is-glob": "^4.0.1", + "lodash": "^4.17.15", + "semver": "^6.3.0", + "tsutils": "^3.17.1" } }, "@webassemblyjs/ast": { @@ -1913,7 +1981,7 @@ "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", "requires": { "@webassemblyjs/ast": "1.8.5", - "mamacro": "0.0.3" + "mamacro": "^0.0.3" } }, "@webassemblyjs/helper-wasm-bytecode": { @@ -1937,7 +2005,7 @@ "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", "requires": { - "@xtuc/ieee754": "1.2.0" + "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { @@ -2047,7 +2115,7 @@ "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "requires": { - "mime-types": "2.1.26", + "mime-types": "~2.1.24", "negotiator": "0.6.2" } }, @@ -2061,8 +2129,8 @@ "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.4.tgz", "integrity": "sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A==", "requires": { - "acorn": "6.4.1", - "acorn-walk": "6.2.0" + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" }, "dependencies": { "acorn": { @@ -2114,7 +2182,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.0" } }, "loader-utils": { @@ -2122,9 +2190,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "requires": { - "big.js": "5.2.2", - "emojis-list": "2.1.0", - "json5": "1.0.1" + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" } } } @@ -2134,8 +2202,8 @@ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.0.1.tgz", "integrity": "sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA==", "requires": { - "clean-stack": "2.2.0", - "indent-string": "4.0.0" + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" } }, "ajv": { @@ -2143,10 +2211,10 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz", "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==", "requires": { - "fast-deep-equal": "3.1.1", - "fast-json-stable-stringify": "2.1.0", - "json-schema-traverse": "0.4.1", - "uri-js": "4.2.2" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, "ajv-errors": { @@ -2164,6 +2232,40 @@ "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=" }, + "ansi-align": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", + "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", + "dev": true, + "requires": { + "string-width": "^3.0.0" + }, + "dependencies": { + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", + "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", + "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + } + } + }, "ansi-colors": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", @@ -2174,7 +2276,7 @@ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", "requires": { - "type-fest": "0.11.0" + "type-fest": "^0.11.0" }, "dependencies": { "type-fest": { @@ -2199,7 +2301,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "requires": { - "color-convert": "1.9.3" + "color-convert": "^1.9.0" } }, "anymatch": { @@ -2207,8 +2309,89 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", "requires": { - "micromatch": "3.1.10", - "normalize-path": "2.1.1" + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "app-builder-bin": { + "version": "3.5.8", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.8.tgz", + "integrity": "sha512-ni3q7QTfQNWHNWuyn5x3FZu6GnQZv+TFnfgk5++svqleKEhHGqS1mIaKsh7x5pBX6NFXU3/+ktk98wA/AW4EXw==", + "dev": true + }, + "app-builder-lib": { + "version": "22.6.0", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.6.0.tgz", + "integrity": "sha512-ky2aLYy92U+Gh6dKq/e8/bNmCotp6/GMhnX8tDZPv9detLg9WuBnWWi1ktBPlpbl1DREusy+TIh+9rgvfduQoA==", + "dev": true, + "requires": { + "7zip-bin": "~5.0.3", + "@develar/schema-utils": "~2.6.5", + "async-exit-hook": "^2.0.1", + "bluebird-lst": "^1.0.9", + "builder-util": "22.6.0", + "builder-util-runtime": "8.7.0", + "chromium-pickle-js": "^0.2.0", + "debug": "^4.1.1", + "ejs": "^3.1.2", + "electron-publish": "22.6.0", + "fs-extra": "^9.0.0", + "hosted-git-info": "^3.0.4", + "is-ci": "^2.0.0", + "isbinaryfile": "^4.0.6", + "js-yaml": "^3.13.1", + "lazy-val": "^1.0.4", + "minimatch": "^3.0.4", + "normalize-package-data": "^2.5.0", + "read-config-file": "6.0.0", + "sanitize-filename": "^1.6.3", + "semver": "^7.3.2", + "temp-file": "^3.3.7" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "hosted-git-info": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", + "dev": true, + "requires": { + "lru-cache": "^5.1.1" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } } }, "aproba": { @@ -2221,7 +2404,7 @@ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "requires": { - "sprintf-js": "1.0.3" + "sprintf-js": "~1.0.2" } }, "aria-query": { @@ -2230,7 +2413,7 @@ "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", "requires": { "ast-types-flow": "0.0.7", - "commander": "2.20.3" + "commander": "^2.11.0" } }, "arity-n": { @@ -2268,9 +2451,9 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.1.tgz", "integrity": "sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.5", - "is-string": "1.0.5" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" } }, "array-union": { @@ -2278,7 +2461,7 @@ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "requires": { - "array-uniq": "1.0.3" + "array-uniq": "^1.0.1" } }, "array-uniq": { @@ -2296,8 +2479,8 @@ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz", "integrity": "sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.5" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "arrify": { @@ -2315,7 +2498,7 @@ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": "~2.1.0" } }, "asn1.js": { @@ -2323,9 +2506,9 @@ "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.10.1.tgz", "integrity": "sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw==", "requires": { - "bn.js": "4.11.8", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "assert": { @@ -2361,7 +2544,7 @@ "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", "requires": { - "lodash": "4.17.15" + "lodash": "^4.17.14" } }, "async-each": { @@ -2369,6 +2552,12 @@ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==" }, + "async-exit-hook": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/async-exit-hook/-/async-exit-hook-2.0.1.tgz", + "integrity": "sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==", + "dev": true + }, "async-limiter": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", @@ -2379,6 +2568,12 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "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 + }, "atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", @@ -2389,13 +2584,13 @@ "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.4.tgz", "integrity": "sha512-g0Ya30YrMBAEZk60lp+qfX5YQllG+S5W3GYCFvyHTvhOki0AEQJLPEcIuGRsqVwLi8FvXPVtwTGhfr38hVpm0g==", "requires": { - "browserslist": "4.11.0", - "caniuse-lite": "1.0.30001036", - "chalk": "2.4.2", - "normalize-range": "0.1.2", - "num2fraction": "1.2.2", - "postcss": "7.0.27", - "postcss-value-parser": "4.0.3" + "browserslist": "^4.8.3", + "caniuse-lite": "^1.0.30001020", + "chalk": "^2.4.2", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.26", + "postcss-value-parser": "^4.0.2" } }, "aws-sign2": { @@ -2418,9 +2613,9 @@ "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", "requires": { - "chalk": "1.1.3", - "esutils": "2.0.3", - "js-tokens": "3.0.2" + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" }, "dependencies": { "ansi-regex": { @@ -2438,11 +2633,11 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", "requires": { - "ansi-styles": "2.2.1", - "escape-string-regexp": "1.0.5", - "has-ansi": "2.0.0", - "strip-ansi": "3.0.1", - "supports-color": "2.0.0" + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" } }, "js-tokens": { @@ -2455,7 +2650,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -2470,12 +2665,12 @@ "resolved": "https://registry.npmjs.org/babel-eslint/-/babel-eslint-10.1.0.tgz", "integrity": "sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg==", "requires": { - "@babel/code-frame": "7.8.3", - "@babel/parser": "7.9.3", - "@babel/traverse": "7.9.0", - "@babel/types": "7.9.0", - "eslint-visitor-keys": "1.1.0", - "resolve": "1.15.0" + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" } }, "babel-extract-comments": { @@ -2483,7 +2678,7 @@ "resolved": "https://registry.npmjs.org/babel-extract-comments/-/babel-extract-comments-1.0.0.tgz", "integrity": "sha512-qWWzi4TlddohA91bFwgt6zO/J0X+io7Qp184Fw0m2JYRSTZnJbFR8+07KmzudHCZgOiKRCrjhylwv9Xd8gfhVQ==", "requires": { - "babylon": "6.18.0" + "babylon": "^6.18.0" } }, "babel-jest": { @@ -2491,13 +2686,13 @@ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.9.0.tgz", "integrity": "sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw==", "requires": { - "@jest/transform": "24.9.0", - "@jest/types": "24.9.0", - "@types/babel__core": "7.1.6", - "babel-plugin-istanbul": "5.2.0", - "babel-preset-jest": "24.9.0", - "chalk": "2.4.2", - "slash": "2.0.0" + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/babel__core": "^7.1.0", + "babel-plugin-istanbul": "^5.1.0", + "babel-preset-jest": "^24.9.0", + "chalk": "^2.4.2", + "slash": "^2.0.0" } }, "babel-loader": { @@ -2505,11 +2700,11 @@ "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.1.0.tgz", "integrity": "sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw==", "requires": { - "find-cache-dir": "2.1.0", - "loader-utils": "1.4.0", - "mkdirp": "0.5.4", - "pify": "4.0.1", - "schema-utils": "2.6.5" + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" }, "dependencies": { "pify": { @@ -2524,7 +2719,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz", "integrity": "sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ==", "requires": { - "object.assign": "4.1.0" + "object.assign": "^4.1.0" } }, "babel-plugin-istanbul": { @@ -2532,10 +2727,10 @@ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz", "integrity": "sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw==", "requires": { - "@babel/helper-plugin-utils": "7.8.3", - "find-up": "3.0.0", - "istanbul-lib-instrument": "3.3.0", - "test-exclude": "5.2.3" + "@babel/helper-plugin-utils": "^7.0.0", + "find-up": "^3.0.0", + "istanbul-lib-instrument": "^3.3.0", + "test-exclude": "^5.2.3" } }, "babel-plugin-jest-hoist": { @@ -2543,7 +2738,7 @@ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz", "integrity": "sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw==", "requires": { - "@types/babel__traverse": "7.0.9" + "@types/babel__traverse": "^7.0.6" } }, "babel-plugin-macros": { @@ -2551,9 +2746,9 @@ "resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz", "integrity": "sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==", "requires": { - "@babel/runtime": "7.9.2", - "cosmiconfig": "6.0.0", - "resolve": "1.15.0" + "@babel/runtime": "^7.7.2", + "cosmiconfig": "^6.0.0", + "resolve": "^1.12.0" }, "dependencies": { "cosmiconfig": { @@ -2561,11 +2756,11 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz", "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==", "requires": { - "@types/parse-json": "4.0.0", - "import-fresh": "3.2.1", - "parse-json": "5.0.0", - "path-type": "4.0.0", - "yaml": "1.8.3" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.1.0", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.7.2" } }, "import-fresh": { @@ -2573,8 +2768,8 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "requires": { - "parent-module": "1.0.1", - "resolve-from": "4.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, "parse-json": { @@ -2582,10 +2777,10 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.0.0.tgz", "integrity": "sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw==", "requires": { - "@babel/code-frame": "7.8.3", - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2", - "lines-and-columns": "1.1.6" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" } }, "path-type": { @@ -2615,8 +2810,8 @@ "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.26.0.tgz", "integrity": "sha1-DzZpLVD+9rfi1LOsFHgTepY7ewY=", "requires": { - "babel-plugin-syntax-object-rest-spread": "6.13.0", - "babel-runtime": "6.26.0" + "babel-plugin-syntax-object-rest-spread": "^6.8.0", + "babel-runtime": "^6.26.0" } }, "babel-plugin-transform-react-remove-prop-types": { @@ -2629,8 +2824,8 @@ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz", "integrity": "sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg==", "requires": { - "@babel/plugin-syntax-object-rest-spread": "7.8.3", - "babel-plugin-jest-hoist": "24.9.0" + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "babel-plugin-jest-hoist": "^24.9.0" } }, "babel-preset-react-app": { @@ -2660,7 +2855,7 @@ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.9.0.tgz", "integrity": "sha512-cTIudHnzuWLS56ik4DnRnqqNf8MkdUzV4iFFI1h7Jo9xvrpQROYaAnaSd2mHLQAzzZAPfATynX5ord6YlNYNMA==", "requires": { - "regenerator-runtime": "0.13.5" + "regenerator-runtime": "^0.13.4" } } } @@ -2670,8 +2865,8 @@ "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", "requires": { - "core-js": "2.6.11", - "regenerator-runtime": "0.11.1" + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" }, "dependencies": { "core-js": { @@ -2701,13 +2896,13 @@ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", "requires": { - "cache-base": "1.0.1", - "class-utils": "0.3.6", - "component-emitter": "1.3.0", - "define-property": "1.0.0", - "isobject": "3.0.1", - "mixin-deep": "1.3.2", - "pascalcase": "0.1.1" + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" }, "dependencies": { "define-property": { @@ -2715,7 +2910,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -2723,7 +2918,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -2731,7 +2926,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -2739,9 +2934,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -2766,7 +2961,7 @@ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "requires": { - "tweetnacl": "0.14.5" + "tweetnacl": "^0.14.3" } }, "big.js": { @@ -2793,6 +2988,15 @@ "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==" }, + "bluebird-lst": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/bluebird-lst/-/bluebird-lst-1.0.9.tgz", + "integrity": "sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==", + "dev": true, + "requires": { + "bluebird": "^3.5.5" + } + }, "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", @@ -2804,15 +3008,15 @@ "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "requires": { "bytes": "3.1.0", - "content-type": "1.0.4", + "content-type": "~1.0.4", "debug": "2.6.9", - "depd": "1.1.2", + "depd": "~1.1.2", "http-errors": "1.7.2", "iconv-lite": "0.4.24", - "on-finished": "2.3.0", + "on-finished": "~2.3.0", "qs": "6.7.0", "raw-body": "2.4.0", - "type-is": "1.6.18" + "type-is": "~1.6.17" }, "dependencies": { "bytes": { @@ -2845,12 +3049,12 @@ "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", "requires": { - "array-flatten": "2.1.2", - "deep-equal": "1.1.1", - "dns-equal": "1.0.0", - "dns-txt": "2.0.2", - "multicast-dns": "6.2.3", - "multicast-dns-service-types": "1.1.0" + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" } }, "boolbase": { @@ -2858,17 +3062,92 @@ "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=" }, + "boolean": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", + "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", + "dev": true, + "optional": true + }, "bootstrap": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.4.1.tgz", "integrity": "sha512-tbx5cHubwE6e2ZG7nqM3g/FZ5PQEDMWmMGNrCUBVRPHXTJaH7CBDdsLeu3eCh3B1tzAxTnAbtmrzvWEvT2NNEA==" }, + "boxen": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", + "dev": true, + "requires": { + "ansi-align": "^3.0.0", + "camelcase": "^5.3.1", + "chalk": "^3.0.0", + "cli-boxes": "^2.2.0", + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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 + }, + "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 + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -2877,16 +3156,16 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", "requires": { - "arr-flatten": "1.1.0", - "array-unique": "0.3.2", - "extend-shallow": "2.0.1", - "fill-range": "4.0.0", - "isobject": "3.0.1", - "repeat-element": "1.1.3", - "snapdragon": "0.8.2", - "snapdragon-node": "2.1.1", - "split-string": "3.1.0", - "to-regex": "3.0.2" + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -2894,7 +3173,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -2929,12 +3208,12 @@ "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { - "buffer-xor": "1.0.3", - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "browserify-cipher": { @@ -2942,9 +3221,9 @@ "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", "requires": { - "browserify-aes": "1.2.0", - "browserify-des": "1.0.2", - "evp_bytestokey": "1.0.3" + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" } }, "browserify-des": { @@ -2952,10 +3231,10 @@ "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", "requires": { - "cipher-base": "1.0.4", - "des.js": "1.0.1", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "browserify-rsa": { @@ -2963,8 +3242,8 @@ "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { - "bn.js": "4.11.8", - "randombytes": "2.1.0" + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" } }, "browserify-sign": { @@ -2972,13 +3251,13 @@ "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "elliptic": "6.5.2", - "inherits": "2.0.4", - "parse-asn1": "5.1.5" + "bn.js": "^4.1.1", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.2", + "elliptic": "^6.0.0", + "inherits": "^2.0.1", + "parse-asn1": "^5.0.0" } }, "browserify-zlib": { @@ -2986,7 +3265,7 @@ "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "requires": { - "pako": "1.0.11" + "pako": "~1.0.5" } }, "browserslist": { @@ -2994,10 +3273,10 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.11.0.tgz", "integrity": "sha512-WqEC7Yr5wUH5sg6ruR++v2SGOQYpyUdYYd4tZoAq1F7y+QXoLoYGXVbxhtaIqWmAJjtNTRjVD3HuJc1OXTel2A==", "requires": { - "caniuse-lite": "1.0.30001036", - "electron-to-chromium": "1.3.381", - "node-releases": "1.1.52", - "pkg-up": "3.1.0" + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.380", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, "bser": { @@ -3005,7 +3284,7 @@ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "requires": { - "node-int64": "0.4.0" + "node-int64": "^0.4.0" } }, "buffer": { @@ -3013,11 +3292,17 @@ "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", "requires": { - "base64-js": "1.3.1", - "ieee754": "1.1.13", - "isarray": "1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" } }, + "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 + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -3033,6 +3318,134 @@ "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" }, + "builder-util": { + "version": "22.6.0", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.6.0.tgz", + "integrity": "sha512-jgdES2ExJYkuXC3DEaGAjFctKNA81C4QDy8zdoc+rqdSqheTizuDNtZg02uMFklmUES4V4fggmqds+Y7wraqng==", + "dev": true, + "requires": { + "7zip-bin": "~5.0.3", + "@types/debug": "^4.1.5", + "@types/fs-extra": "^8.1.0", + "app-builder-bin": "3.5.8", + "bluebird-lst": "^1.0.9", + "builder-util-runtime": "8.7.0", + "chalk": "^4.0.0", + "debug": "^4.1.1", + "fs-extra": "^9.0.0", + "is-ci": "^2.0.0", + "js-yaml": "^3.13.1", + "source-map-support": "^0.5.19", + "stat-mode": "^1.0.0", + "temp-file": "^3.3.7" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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 + }, + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.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 + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } + } + }, + "builder-util-runtime": { + "version": "8.7.0", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.0.tgz", + "integrity": "sha512-G1AqqVM2vYTrSFR982c1NNzwXKrGLQjVjaZaWQdn4O6Z3YKjdMDofw88aD9jpyK9ZXkrCxR0tI3Qe9wNbyTlXg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "sax": "^1.2.4" + } + }, "builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", @@ -3048,24 +3461,24 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", "requires": { - "chownr": "1.1.4", - "figgy-pudding": "3.5.1", - "fs-minipass": "2.1.0", - "glob": "7.1.6", - "graceful-fs": "4.2.3", - "infer-owner": "1.0.4", - "lru-cache": "5.1.1", - "minipass": "3.1.1", - "minipass-collect": "1.0.2", - "minipass-flush": "1.0.5", - "minipass-pipeline": "1.2.2", - "mkdirp": "0.5.4", - "move-concurrently": "1.0.1", - "p-map": "3.0.0", - "promise-inflight": "1.0.1", - "rimraf": "2.7.1", - "ssri": "7.1.0", - "unique-filename": "1.1.1" + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" }, "dependencies": { "rimraf": { @@ -3073,7 +3486,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "requires": { - "glob": "7.1.6" + "glob": "^7.1.3" } } } @@ -3083,15 +3496,53 @@ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", "requires": { - "collection-visit": "1.0.0", - "component-emitter": "1.3.0", - "get-value": "2.0.6", - "has-value": "1.0.0", - "isobject": "3.0.1", - "set-value": "2.0.1", - "to-object-path": "0.3.0", - "union-value": "1.0.1", - "unset-value": "1.0.0" + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "dev": true, + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", + "dev": true + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", + "dev": true + } } }, "call-me-maybe": { @@ -3104,7 +3555,7 @@ "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", "requires": { - "callsites": "2.0.0" + "callsites": "^2.0.0" } }, "caller-path": { @@ -3112,7 +3563,7 @@ "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", "requires": { - "caller-callsite": "2.0.0" + "caller-callsite": "^2.0.0" } }, "callsites": { @@ -3125,8 +3576,8 @@ "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-4.1.1.tgz", "integrity": "sha512-7fa2WcG4fYFkclIvEmxBbTvmibwF2/agfEBc6q3lOpVu0A13ltLsA+Hr/8Hp6kp5f+G7hKi6t8lys6XxP+1K6Q==", "requires": { - "pascal-case": "3.1.1", - "tslib": "1.11.1" + "pascal-case": "^3.1.1", + "tslib": "^1.10.0" } }, "camelcase": { @@ -3139,10 +3590,10 @@ "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", "requires": { - "browserslist": "4.11.0", - "caniuse-lite": "1.0.30001036", - "lodash.memoize": "4.1.2", - "lodash.uniq": "4.5.0" + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" } }, "caniuse-lite": { @@ -3155,7 +3606,7 @@ "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", "requires": { - "rsvp": "4.8.5" + "rsvp": "^4.8.4" } }, "case-sensitive-paths-webpack-plugin": { @@ -3173,9 +3624,9 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "ansi-styles": "3.2.1", - "escape-string-regexp": "1.0.5", - "supports-color": "5.5.0" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, "chardet": { @@ -3188,14 +3639,14 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz", "integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==", "requires": { - "anymatch": "3.1.1", - "braces": "3.0.2", - "fsevents": "2.1.2", - "glob-parent": "5.1.1", - "is-binary-path": "2.1.0", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "readdirp": "3.3.0" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.3.0" }, "dependencies": { "anymatch": { @@ -3203,8 +3654,8 @@ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", "requires": { - "normalize-path": "3.0.0", - "picomatch": "2.2.2" + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" } }, "braces": { @@ -3212,7 +3663,7 @@ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "requires": { - "fill-range": "7.0.1" + "fill-range": "^7.0.1" } }, "fill-range": { @@ -3220,7 +3671,7 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "requires": { - "to-regex-range": "5.0.1" + "to-regex-range": "^5.0.1" } }, "is-number": { @@ -3238,7 +3689,7 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "requires": { - "is-number": "7.0.0" + "is-number": "^7.0.0" } } } @@ -3253,9 +3704,15 @@ "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", "requires": { - "tslib": "1.11.1" + "tslib": "^1.9.0" } }, + "chromium-pickle-js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz", + "integrity": "sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=", + "dev": true + }, "ci-info": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", @@ -3266,8 +3723,8 @@ "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", "requires": { - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "class-utils": { @@ -3275,10 +3732,10 @@ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", "requires": { - "arr-union": "3.1.0", - "define-property": "0.2.5", - "isobject": "3.0.1", - "static-extend": "0.1.2" + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" }, "dependencies": { "define-property": { @@ -3286,7 +3743,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -3301,7 +3758,7 @@ "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz", "integrity": "sha512-VcMWDN54ZN/DS+g58HYL5/n4Zrqe8vHJpGA8KdgUXFU4fuP/aHNw8eld9SyEIyabIMJX/0RaY/fplOo5hYLSFA==", "requires": { - "source-map": "0.6.1" + "source-map": "~0.6.0" }, "dependencies": { "source-map": { @@ -3316,12 +3773,18 @@ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==" }, + "cli-boxes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", + "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "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==", "requires": { - "restore-cursor": "3.1.0" + "restore-cursor": "^3.1.0" } }, "cli-width": { @@ -3334,9 +3797,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", "requires": { - "string-width": "3.1.0", - "strip-ansi": "5.2.0", - "wrap-ansi": "5.1.0" + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" }, "dependencies": { "emoji-regex": { @@ -3354,9 +3817,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } } } @@ -3366,11 +3829,20 @@ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-0.2.4.tgz", "integrity": "sha1-TnPdCen7lxzDhnDF3O2cGJZIHMY=", "requires": { - "for-own": "0.1.5", - "is-plain-object": "2.0.4", - "kind-of": "3.2.2", - "lazy-cache": "1.0.4", - "shallow-clone": "0.1.2" + "for-own": "^0.1.3", + "is-plain-object": "^2.0.1", + "kind-of": "^3.0.2", + "lazy-cache": "^1.0.3", + "shallow-clone": "^0.1.2" + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" } }, "co": { @@ -3383,9 +3855,9 @@ "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", "requires": { - "@types/q": "1.5.2", - "chalk": "2.4.2", - "q": "1.5.1" + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" } }, "code-point-at": { @@ -3398,8 +3870,8 @@ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", "requires": { - "map-visit": "1.0.0", - "object-visit": "1.0.1" + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" } }, "color": { @@ -3407,8 +3879,8 @@ "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", "requires": { - "color-convert": "1.9.3", - "color-string": "1.5.3" + "color-convert": "^1.9.1", + "color-string": "^1.5.2" } }, "color-convert": { @@ -3429,8 +3901,8 @@ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", "requires": { - "color-name": "1.1.3", - "simple-swizzle": "0.2.2" + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" } }, "combined-stream": { @@ -3438,7 +3910,7 @@ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "requires": { - "delayed-stream": "1.0.0" + "delayed-stream": "~1.0.0" } }, "commander": { @@ -3466,7 +3938,7 @@ "resolved": "https://registry.npmjs.org/compose-function/-/compose-function-3.0.3.tgz", "integrity": "sha1-ntZ18TzFRQHTCVCkhv9qe6OrGF8=", "requires": { - "arity-n": "1.0.4" + "arity-n": "^1.0.4" } }, "compressible": { @@ -3474,7 +3946,7 @@ "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "requires": { - "mime-db": "1.43.0" + "mime-db": ">= 1.43.0 < 2" } }, "compression": { @@ -3482,13 +3954,13 @@ "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "requires": { - "accepts": "1.3.7", + "accepts": "~1.3.5", "bytes": "3.0.0", - "compressible": "2.0.18", + "compressible": "~2.0.16", "debug": "2.6.9", - "on-headers": "1.0.2", + "on-headers": "~1.0.2", "safe-buffer": "5.1.2", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "debug": { @@ -3516,10 +3988,10 @@ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", "requires": { - "buffer-from": "1.1.1", - "inherits": "2.0.4", - "readable-stream": "2.3.7", - "typedarray": "0.0.6" + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" }, "dependencies": { "readable-stream": { @@ -3527,13 +3999,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -3541,7 +4013,55 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" + } + } + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "dev": true, + "optional": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "configstore": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "graceful-fs": "^4.1.2", + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } } } @@ -3589,7 +4109,7 @@ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.1" } }, "cookie": { @@ -3607,12 +4127,12 @@ "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", "requires": { - "aproba": "1.2.0", - "fs-write-stream-atomic": "1.0.10", - "iferr": "0.1.5", - "mkdirp": "0.5.4", - "rimraf": "2.6.3", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" } }, "copy-descriptor": { @@ -3630,7 +4150,7 @@ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.4.tgz", "integrity": "sha512-zAa3IZPvsJ0slViBQ2z+vgyyTuhd3MFn1rBQjZSKVEgB0UMYhUkCj9jJUVPgGTGqWvsBVmfnruXgTcNyTlEiSA==", "requires": { - "browserslist": "4.11.0", + "browserslist": "^4.8.3", "semver": "7.0.0" }, "dependencies": { @@ -3656,10 +4176,10 @@ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", "requires": { - "import-fresh": "2.0.0", - "is-directory": "0.3.1", - "js-yaml": "3.13.1", - "parse-json": "4.0.0" + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" } }, "create-ecdh": { @@ -3667,8 +4187,8 @@ "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.3.tgz", "integrity": "sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw==", "requires": { - "bn.js": "4.11.8", - "elliptic": "6.5.2" + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" } }, "create-hash": { @@ -3676,11 +4196,11 @@ "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { - "cipher-base": "1.0.4", - "inherits": "2.0.4", - "md5.js": "1.3.5", - "ripemd160": "2.0.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" } }, "create-hmac": { @@ -3688,12 +4208,12 @@ "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { - "cipher-base": "1.0.4", - "create-hash": "1.2.0", - "inherits": "2.0.4", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, "cross-spawn": { @@ -3701,11 +4221,11 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", "requires": { - "nice-try": "1.0.5", - "path-key": "2.0.1", - "semver": "5.7.1", - "shebang-command": "1.2.0", - "which": "1.3.1" + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" }, "dependencies": { "semver": { @@ -3720,28 +4240,34 @@ "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", "requires": { - "browserify-cipher": "1.0.1", - "browserify-sign": "4.0.4", - "create-ecdh": "4.0.3", - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "diffie-hellman": "5.0.3", - "inherits": "2.0.4", - "pbkdf2": "3.0.17", - "public-encrypt": "4.0.3", - "randombytes": "2.1.0", - "randomfill": "1.0.4" + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" } }, + "crypto-random-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", + "dev": true + }, "css": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", "requires": { - "inherits": "2.0.4", - "source-map": "0.6.1", - "source-map-resolve": "0.5.3", - "urix": "0.1.0" + "inherits": "^2.0.3", + "source-map": "^0.6.1", + "source-map-resolve": "^0.5.2", + "urix": "^0.1.0" }, "dependencies": { "source-map": { @@ -3756,7 +4282,7 @@ "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz", "integrity": "sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.5" } }, "css-color-names": { @@ -3769,8 +4295,8 @@ "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", "requires": { - "postcss": "7.0.27", - "timsort": "0.3.0" + "postcss": "^7.0.1", + "timsort": "^0.3.0" } }, "css-has-pseudo": { @@ -3778,8 +4304,8 @@ "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz", "integrity": "sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ==", "requires": { - "postcss": "7.0.27", - "postcss-selector-parser": "5.0.0" + "postcss": "^7.0.6", + "postcss-selector-parser": "^5.0.0-rc.4" }, "dependencies": { "cssesc": { @@ -3792,9 +4318,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "requires": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } @@ -3804,18 +4330,18 @@ "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-3.4.2.tgz", "integrity": "sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA==", "requires": { - "camelcase": "5.3.1", - "cssesc": "3.0.0", - "icss-utils": "4.1.1", - "loader-utils": "1.4.0", - "normalize-path": "3.0.0", - "postcss": "7.0.27", - "postcss-modules-extract-imports": "2.0.0", - "postcss-modules-local-by-default": "3.0.2", - "postcss-modules-scope": "2.2.0", - "postcss-modules-values": "3.0.0", - "postcss-value-parser": "4.0.3", - "schema-utils": "2.6.5" + "camelcase": "^5.3.1", + "cssesc": "^3.0.0", + "icss-utils": "^4.1.1", + "loader-utils": "^1.2.3", + "normalize-path": "^3.0.0", + "postcss": "^7.0.23", + "postcss-modules-extract-imports": "^2.0.0", + "postcss-modules-local-by-default": "^3.0.2", + "postcss-modules-scope": "^2.1.1", + "postcss-modules-values": "^3.0.0", + "postcss-value-parser": "^4.0.2", + "schema-utils": "^2.6.0" }, "dependencies": { "normalize-path": { @@ -3830,7 +4356,7 @@ "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz", "integrity": "sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.5" } }, "css-select": { @@ -3838,10 +4364,10 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", "requires": { - "boolbase": "1.0.0", - "css-what": "3.2.1", - "domutils": "1.7.0", - "nth-check": "1.0.2" + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" } }, "css-select-base-adapter": { @@ -3855,7 +4381,7 @@ "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", "requires": { "mdn-data": "2.0.4", - "source-map": "0.6.1" + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -3890,10 +4416,10 @@ "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", "requires": { - "cosmiconfig": "5.2.1", - "cssnano-preset-default": "4.0.7", - "is-resolvable": "1.1.0", - "postcss": "7.0.27" + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" } }, "cssnano-preset-default": { @@ -3901,36 +4427,36 @@ "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", "requires": { - "css-declaration-sorter": "4.0.1", - "cssnano-util-raw-cache": "4.0.1", - "postcss": "7.0.27", - "postcss-calc": "7.0.2", - "postcss-colormin": "4.0.3", - "postcss-convert-values": "4.0.1", - "postcss-discard-comments": "4.0.2", - "postcss-discard-duplicates": "4.0.2", - "postcss-discard-empty": "4.0.1", - "postcss-discard-overridden": "4.0.1", - "postcss-merge-longhand": "4.0.11", - "postcss-merge-rules": "4.0.3", - "postcss-minify-font-values": "4.0.2", - "postcss-minify-gradients": "4.0.2", - "postcss-minify-params": "4.0.2", - "postcss-minify-selectors": "4.0.2", - "postcss-normalize-charset": "4.0.1", - "postcss-normalize-display-values": "4.0.2", - "postcss-normalize-positions": "4.0.2", - "postcss-normalize-repeat-style": "4.0.2", - "postcss-normalize-string": "4.0.2", - "postcss-normalize-timing-functions": "4.0.2", - "postcss-normalize-unicode": "4.0.1", - "postcss-normalize-url": "4.0.1", - "postcss-normalize-whitespace": "4.0.2", - "postcss-ordered-values": "4.1.2", - "postcss-reduce-initial": "4.0.3", - "postcss-reduce-transforms": "4.0.2", - "postcss-svgo": "4.0.2", - "postcss-unique-selectors": "4.0.1" + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" } }, "cssnano-util-get-arguments": { @@ -3948,7 +4474,7 @@ "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.0" } }, "cssnano-util-same-parent": { @@ -3974,7 +4500,7 @@ "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.4.0.tgz", "integrity": "sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA==", "requires": { - "cssom": "0.3.8" + "cssom": "0.3.x" } }, "csstype": { @@ -3992,8 +4518,8 @@ "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", "requires": { - "es5-ext": "0.10.53", - "type": "1.2.0" + "es5-ext": "^0.10.50", + "type": "^1.0.1" } }, "damerau-levenshtein": { @@ -4006,7 +4532,7 @@ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "data-urls": { @@ -4014,9 +4540,9 @@ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", "requires": { - "abab": "2.0.3", - "whatwg-mimetype": "2.3.0", - "whatwg-url": "7.1.0" + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" }, "dependencies": { "whatwg-url": { @@ -4024,9 +4550,9 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } } } @@ -4036,7 +4562,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "decamelize": { @@ -4049,19 +4575,34 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, - "deep-equal": { - "version": "1.1.1", + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "dev": true, + "requires": { + "mimic-response": "^1.0.0" + } + }, + "deep-equal": { + "version": "1.1.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", "requires": { - "is-arguments": "1.0.4", - "is-date-object": "1.0.2", - "is-regex": "1.0.5", - "object-is": "1.0.2", - "object-keys": "1.1.1", - "regexp.prototype.flags": "1.3.0" + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" } }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -4072,16 +4613,22 @@ "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", "requires": { - "execa": "1.0.0", - "ip-regex": "2.1.0" + "execa": "^1.0.0", + "ip-regex": "^2.1.0" } }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", + "dev": true + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", "requires": { - "object-keys": "1.1.1" + "object-keys": "^1.0.12" } }, "define-property": { @@ -4089,8 +4636,8 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", "requires": { - "is-descriptor": "1.0.2", - "isobject": "3.0.1" + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" }, "dependencies": { "is-accessor-descriptor": { @@ -4098,7 +4645,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -4106,7 +4653,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -4114,9 +4661,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -4131,13 +4678,13 @@ "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", "requires": { - "@types/glob": "7.1.1", - "globby": "6.1.0", - "is-path-cwd": "2.2.0", - "is-path-in-cwd": "2.1.0", - "p-map": "2.1.0", - "pify": "4.0.1", - "rimraf": "2.6.3" + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" }, "dependencies": { "globby": { @@ -4145,11 +4692,11 @@ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", "requires": { - "array-union": "1.0.2", - "glob": "7.1.6", - "object-assign": "4.1.1", - "pify": "2.3.0", - "pinkie-promise": "2.0.1" + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" }, "dependencies": { "pify": { @@ -4186,8 +4733,8 @@ "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", "requires": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" } }, "destroy": { @@ -4210,8 +4757,8 @@ "resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz", "integrity": "sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q==", "requires": { - "address": "1.1.2", - "debug": "2.6.9" + "address": "^1.0.1", + "debug": "^2.6.0" }, "dependencies": { "debug": { @@ -4239,9 +4786,9 @@ "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "requires": { - "bn.js": "4.11.8", - "miller-rabin": "4.0.1", - "randombytes": "2.1.0" + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" } }, "dir-glob": { @@ -4249,8 +4796,61 @@ "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.0.0.tgz", "integrity": "sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag==", "requires": { - "arrify": "1.0.1", - "path-type": "3.0.0" + "arrify": "^1.0.1", + "path-type": "^3.0.0" + } + }, + "dmg-builder": { + "version": "22.6.0", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.6.0.tgz", + "integrity": "sha512-rJxuGhHIpcuDGBtWZMM8aLxkbZNgYO2MO5dUerDIBXebhX1K8DA23iz/uZ8ahcRNgWEv57b8GDqJbXKEfr5T0A==", + "dev": true, + "requires": { + "app-builder-lib": "22.6.0", + "builder-util": "22.6.0", + "fs-extra": "^9.0.0", + "iconv-lite": "^0.5.1", + "js-yaml": "^3.13.1", + "sanitize-filename": "^1.6.3" + }, + "dependencies": { + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.0.0" + } + }, + "iconv-lite": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz", + "integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } } }, "dns-equal": { @@ -4263,8 +4863,8 @@ "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", "requires": { - "ip": "1.1.5", - "safe-buffer": "5.1.2" + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" } }, "dns-txt": { @@ -4272,7 +4872,7 @@ "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", "requires": { - "buffer-indexof": "1.1.1" + "buffer-indexof": "^1.0.0" } }, "doctrine": { @@ -4280,7 +4880,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", "requires": { - "esutils": "2.0.3" + "esutils": "^2.0.2" } }, "dom-accessibility-api": { @@ -4293,7 +4893,7 @@ "resolved": "https://registry.npmjs.org/dom-converter/-/dom-converter-0.2.0.tgz", "integrity": "sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA==", "requires": { - "utila": "0.4.0" + "utila": "~0.4" } }, "dom-helpers": { @@ -4301,8 +4901,8 @@ "resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.1.4.tgz", "integrity": "sha512-TjMyeVUvNEnOnhzs6uAn9Ya47GmMo3qq7m+Lr/3ON0Rs5kHvb8I+SQYjLUSYn7qhEm0QjW0yrBkvz9yOrwwz1A==", "requires": { - "@babel/runtime": "7.9.2", - "csstype": "2.6.9" + "@babel/runtime": "^7.8.7", + "csstype": "^2.6.7" } }, "dom-serializer": { @@ -4310,8 +4910,8 @@ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", "requires": { - "domelementtype": "2.0.1", - "entities": "2.0.0" + "domelementtype": "^2.0.1", + "entities": "^2.0.0" }, "dependencies": { "domelementtype": { @@ -4336,7 +4936,7 @@ "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", "requires": { - "webidl-conversions": "4.0.2" + "webidl-conversions": "^4.0.2" } }, "domhandler": { @@ -4344,7 +4944,7 @@ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", "requires": { - "domelementtype": "1.3.1" + "domelementtype": "1" } }, "domutils": { @@ -4352,8 +4952,8 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", "requires": { - "dom-serializer": "0.2.2", - "domelementtype": "1.3.1" + "dom-serializer": "0", + "domelementtype": "1" } }, "dot-case": { @@ -4361,8 +4961,8 @@ "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.3.tgz", "integrity": "sha512-7hwEmg6RiSQfm/GwPL4AAWXKy3YNNZA3oFv2Pdiey0mwkRCPZ9x6SZbkLcn8Ma5PYeVokzoD4Twv2n7LKp5WeA==", "requires": { - "no-case": "3.0.3", - "tslib": "1.11.1" + "no-case": "^3.0.3", + "tslib": "^1.10.0" } }, "dot-prop": { @@ -4370,7 +4970,7 @@ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "requires": { - "is-obj": "2.0.0" + "is-obj": "^2.0.0" } }, "dotenv": { @@ -4388,15 +4988,21 @@ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=" }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", + "dev": true + }, "duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", "requires": { - "end-of-stream": "1.4.4", - "inherits": "2.0.4", - "readable-stream": "2.3.7", - "stream-shift": "1.0.1" + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" }, "dependencies": { "readable-stream": { @@ -4404,13 +5010,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -4418,7 +5024,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -4428,8 +5034,8 @@ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "requires": { - "jsbn": "0.1.1", - "safer-buffer": "2.1.2" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, "ee-first": { @@ -4437,6 +5043,335 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, + "ejs": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.2.tgz", + "integrity": "sha512-zFuywxrAWtX5Mk2KAuoJNkXXbfezpNA0v7i+YC971QORguPekpjpAgeOv99YWSdKXwj7JxI2QAWDeDkE8fWtXw==", + "dev": true, + "requires": { + "jake": "^10.6.1" + } + }, + "electron": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.5.tgz", + "integrity": "sha512-LxSCUwmlfJtRwthd3ofpYaZ+1C2hQSW8Ep1DD9K3VbnDItO+kb3t1z35daJgAab78j54aOwo9gMxJtvU0Ftj6w==", + "dev": true, + "requires": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + }, + "dependencies": { + "@types/node": { + "version": "12.12.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.38.tgz", + "integrity": "sha512-75eLjX0pFuTcUXnnWmALMzzkYorjND0ezNEycaKesbUBg9eGZp4GHPuDmkRc4mQQvIpe29zrzATNRA6hkYqwmA==", + "dev": true + } + } + }, + "electron-builder": { + "version": "22.6.0", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.6.0.tgz", + "integrity": "sha512-aLHlB6DTfjJ3MI4AUIFeWnwIozNgNlbOk2c2sTHxB10cAKp0dBVSPZ7xF5NK0uwDhElvRzJQubnHtJD6zKg42Q==", + "dev": true, + "requires": { + "@types/yargs": "^15.0.4", + "app-builder-lib": "22.6.0", + "bluebird-lst": "^1.0.9", + "builder-util": "22.6.0", + "builder-util-runtime": "8.7.0", + "chalk": "^4.0.0", + "dmg-builder": "22.6.0", + "fs-extra": "^9.0.0", + "is-ci": "^2.0.0", + "lazy-val": "^1.0.4", + "read-config-file": "6.0.0", + "sanitize-filename": "^1.6.3", + "update-notifier": "^4.1.0", + "yargs": "^15.3.1" + }, + "dependencies": { + "@types/yargs": { + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", + "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.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 + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.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 + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "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" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + }, + "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" + } + }, + "yargs": { + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.1" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "electron-publish": { + "version": "22.6.0", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.6.0.tgz", + "integrity": "sha512-+v05SBf9qR7Os5au+fifloNHy5QxHQkUGudBj68YaTb43Pn37UkwRxSc49Lf13s4wW32ohM45g8BOVInPJEdnA==", + "dev": true, + "requires": { + "@types/fs-extra": "^8.1.0", + "bluebird-lst": "^1.0.9", + "builder-util": "22.6.0", + "builder-util-runtime": "8.7.0", + "chalk": "^4.0.0", + "fs-extra": "^9.0.0", + "lazy-val": "^1.0.4", + "mime": "^2.4.4" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.0.0.tgz", + "integrity": "sha512-N9oWFcegS0sFr9oh1oz2d7Npos6vNoWW9HvtCg5N1KRFpUhaAhvTv5Y58g880fZaEYSNm3qDz8SU1UrGvp+n7A==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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 + }, + "fs-extra": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.0.tgz", + "integrity": "sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g==", + "dev": true, + "requires": { + "at-least-node": "^1.0.0", + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^1.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 + }, + "jsonfile": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", + "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^1.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "universalify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", + "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "dev": true + } + } + }, "electron-to-chromium": { "version": "1.3.381", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.381.tgz", @@ -4447,13 +5382,13 @@ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.2.tgz", "integrity": "sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0", - "hash.js": "1.1.7", - "hmac-drbg": "1.0.1", - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" } }, "emoji-regex": { @@ -4476,7 +5411,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "requires": { - "once": "1.4.0" + "once": "^1.4.0" } }, "enhanced-resolve": { @@ -4484,9 +5419,9 @@ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", "requires": { - "graceful-fs": "4.2.3", - "memory-fs": "0.5.0", - "tapable": "1.1.3" + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" }, "dependencies": { "memory-fs": { @@ -4494,8 +5429,8 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.7" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" } }, "readable-stream": { @@ -4503,13 +5438,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -4517,7 +5452,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -4527,12 +5462,18 @@ "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.0.tgz", "integrity": "sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw==" }, + "env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "dev": true + }, "errno": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", "requires": { - "prr": "1.0.1" + "prr": "~1.0.1" } }, "error-ex": { @@ -4540,7 +5481,7 @@ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "requires": { - "is-arrayish": "0.2.1" + "is-arrayish": "^0.2.1" } }, "es-abstract": { @@ -4548,17 +5489,17 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.5.tgz", "integrity": "sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==", "requires": { - "es-to-primitive": "1.2.1", - "function-bind": "1.1.1", - "has": "1.0.3", - "has-symbols": "1.0.1", - "is-callable": "1.1.5", - "is-regex": "1.0.5", - "object-inspect": "1.7.0", - "object-keys": "1.1.1", - "object.assign": "4.1.0", - "string.prototype.trimleft": "2.1.1", - "string.prototype.trimright": "2.1.1" + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.1.5", + "is-regex": "^1.0.5", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimleft": "^2.1.1", + "string.prototype.trimright": "^2.1.1" } }, "es-to-primitive": { @@ -4566,9 +5507,9 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", "requires": { - "is-callable": "1.1.5", - "is-date-object": "1.0.2", - "is-symbol": "1.0.3" + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" } }, "es5-ext": { @@ -4576,19 +5517,26 @@ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", "requires": { - "es6-iterator": "2.0.3", - "es6-symbol": "3.1.3", - "next-tick": "1.0.0" + "es6-iterator": "~2.0.3", + "es6-symbol": "~3.1.3", + "next-tick": "~1.0.0" } }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", + "dev": true, + "optional": true + }, "es6-iterator": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", "requires": { - "d": "1.0.1", - "es5-ext": "0.10.53", - "es6-symbol": "3.1.3" + "d": "1", + "es5-ext": "^0.10.35", + "es6-symbol": "^3.1.1" } }, "es6-symbol": { @@ -4596,10 +5544,16 @@ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", "requires": { - "d": "1.0.1", - "ext": "1.4.0" + "d": "^1.0.1", + "ext": "^1.1.2" } }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -4615,11 +5569,11 @@ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", "requires": { - "esprima": "4.0.1", - "estraverse": "4.3.0", - "esutils": "2.0.3", - "optionator": "0.8.3", - "source-map": "0.6.1" + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -4635,43 +5589,43 @@ "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz", "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==", "requires": { - "@babel/code-frame": "7.8.3", - "ajv": "6.12.0", - "chalk": "2.4.2", - "cross-spawn": "6.0.5", - "debug": "4.1.1", - "doctrine": "3.0.0", - "eslint-scope": "5.0.0", - "eslint-utils": "1.4.3", - "eslint-visitor-keys": "1.1.0", - "espree": "6.2.1", - "esquery": "1.2.0", - "esutils": "2.0.3", - "file-entry-cache": "5.0.1", - "functional-red-black-tree": "1.0.1", - "glob-parent": "5.1.1", - "globals": "12.4.0", - "ignore": "4.0.6", - "import-fresh": "3.2.1", - "imurmurhash": "0.1.4", - "inquirer": "7.1.0", - "is-glob": "4.0.1", - "js-yaml": "3.13.1", - "json-stable-stringify-without-jsonify": "1.0.1", - "levn": "0.3.0", - "lodash": "4.17.15", - "minimatch": "3.0.4", - "mkdirp": "0.5.4", - "natural-compare": "1.4.0", - "optionator": "0.8.3", - "progress": "2.0.3", - "regexpp": "2.0.1", - "semver": "6.3.0", - "strip-ansi": "5.2.0", - "strip-json-comments": "3.0.1", - "table": "5.4.6", - "text-table": "0.2.0", - "v8-compile-cache": "2.1.0" + "@babel/code-frame": "^7.0.0", + "ajv": "^6.10.0", + "chalk": "^2.1.0", + "cross-spawn": "^6.0.5", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "eslint-scope": "^5.0.0", + "eslint-utils": "^1.4.3", + "eslint-visitor-keys": "^1.1.0", + "espree": "^6.1.2", + "esquery": "^1.0.1", + "esutils": "^2.0.2", + "file-entry-cache": "^5.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.0.0", + "globals": "^12.1.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "inquirer": "^7.0.0", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.14", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.3", + "progress": "^2.0.0", + "regexpp": "^2.0.1", + "semver": "^6.1.2", + "strip-ansi": "^5.2.0", + "strip-json-comments": "^3.0.1", + "table": "^5.2.3", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" }, "dependencies": { "eslint-utils": { @@ -4679,7 +5633,7 @@ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", "requires": { - "eslint-visitor-keys": "1.1.0" + "eslint-visitor-keys": "^1.1.0" } }, "globals": { @@ -4687,7 +5641,7 @@ "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz", "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==", "requires": { - "type-fest": "0.8.1" + "type-fest": "^0.8.1" } }, "import-fresh": { @@ -4695,8 +5649,8 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", "requires": { - "parent-module": "1.0.1", - "resolve-from": "4.0.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" } }, "regexpp": { @@ -4716,7 +5670,7 @@ "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz", "integrity": "sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ==", "requires": { - "confusing-browser-globals": "1.0.9" + "confusing-browser-globals": "^1.0.9" } }, "eslint-import-resolver-node": { @@ -4724,8 +5678,8 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz", "integrity": "sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg==", "requires": { - "debug": "2.6.9", - "resolve": "1.15.0" + "debug": "^2.6.9", + "resolve": "^1.13.1" }, "dependencies": { "debug": { @@ -4748,11 +5702,11 @@ "resolved": "https://registry.npmjs.org/eslint-loader/-/eslint-loader-3.0.3.tgz", "integrity": "sha512-+YRqB95PnNvxNp1HEjQmvf9KNvCin5HXYYseOXVC2U0KEcw4IkQ2IQEBG46j7+gW39bMzeu0GsUhVbBY3Votpw==", "requires": { - "fs-extra": "8.1.0", - "loader-fs-cache": "1.0.3", - "loader-utils": "1.4.0", - "object-hash": "2.0.3", - "schema-utils": "2.6.5" + "fs-extra": "^8.1.0", + "loader-fs-cache": "^1.0.2", + "loader-utils": "^1.2.3", + "object-hash": "^2.0.1", + "schema-utils": "^2.6.1" } }, "eslint-module-utils": { @@ -4760,8 +5714,8 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.5.2.tgz", "integrity": "sha512-LGScZ/JSlqGKiT8OC+cYRxseMjyqt6QO54nl281CK93unD89ijSeRV6An8Ci/2nvWVKe8K/Tqdm75RQoIOCr+Q==", "requires": { - "debug": "2.6.9", - "pkg-dir": "2.0.0" + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" }, "dependencies": { "debug": { @@ -4777,7 +5731,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "locate-path": { @@ -4785,8 +5739,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "ms": { @@ -4799,7 +5753,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -4807,7 +5761,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -4820,7 +5774,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", "requires": { - "find-up": "2.1.0" + "find-up": "^2.1.0" } } } @@ -4830,7 +5784,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-flowtype/-/eslint-plugin-flowtype-4.6.0.tgz", "integrity": "sha512-W5hLjpFfZyZsXfo5anlu7HM970JBDqbEshAJUkeczP6BFCIfJXuiIBQXyberLRtOStT0OGPF8efeTbxlHk4LpQ==", "requires": { - "lodash": "4.17.15" + "lodash": "^4.17.15" } }, "eslint-plugin-import": { @@ -4838,18 +5792,18 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.20.1.tgz", "integrity": "sha512-qQHgFOTjguR+LnYRoToeZWT62XM55MBVXObHM6SKFd1VzDcX/vqT1kAz8ssqigh5eMj8qXcRoXXGZpPP6RfdCw==", "requires": { - "array-includes": "3.1.1", - "array.prototype.flat": "1.2.3", - "contains-path": "0.1.0", - "debug": "2.6.9", + "array-includes": "^3.0.3", + "array.prototype.flat": "^1.2.1", + "contains-path": "^0.1.0", + "debug": "^2.6.9", "doctrine": "1.5.0", - "eslint-import-resolver-node": "0.3.3", - "eslint-module-utils": "2.5.2", - "has": "1.0.3", - "minimatch": "3.0.4", - "object.values": "1.1.1", - "read-pkg-up": "2.0.0", - "resolve": "1.15.0" + "eslint-import-resolver-node": "^0.3.2", + "eslint-module-utils": "^2.4.1", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.0", + "read-pkg-up": "^2.0.0", + "resolve": "^1.12.0" }, "dependencies": { "debug": { @@ -4865,8 +5819,8 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-1.5.0.tgz", "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", "requires": { - "esutils": "2.0.3", - "isarray": "1.0.0" + "esutils": "^2.0.2", + "isarray": "^1.0.0" } }, "find-up": { @@ -4874,7 +5828,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "requires": { - "locate-path": "2.0.0" + "locate-path": "^2.0.0" } }, "load-json-file": { @@ -4882,10 +5836,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", "requires": { - "graceful-fs": "4.2.3", - "parse-json": "2.2.0", - "pify": "2.3.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" } }, "locate-path": { @@ -4893,8 +5847,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", "requires": { - "p-locate": "2.0.0", - "path-exists": "3.0.0" + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" } }, "ms": { @@ -4907,7 +5861,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", "requires": { - "p-try": "1.0.0" + "p-try": "^1.0.0" } }, "p-locate": { @@ -4915,7 +5869,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", "requires": { - "p-limit": "1.3.0" + "p-limit": "^1.1.0" } }, "p-try": { @@ -4928,7 +5882,7 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", "requires": { - "error-ex": "1.3.2" + "error-ex": "^1.2.0" } }, "path-type": { @@ -4936,7 +5890,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", "requires": { - "pify": "2.3.0" + "pify": "^2.0.0" } }, "pify": { @@ -4949,9 +5903,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", "requires": { - "load-json-file": "2.0.0", - "normalize-package-data": "2.5.0", - "path-type": "2.0.0" + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" } }, "read-pkg-up": { @@ -4959,8 +5913,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", "requires": { - "find-up": "2.1.0", - "read-pkg": "2.0.0" + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" } } } @@ -4970,15 +5924,15 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz", "integrity": "sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg==", "requires": { - "@babel/runtime": "7.9.2", - "aria-query": "3.0.0", - "array-includes": "3.1.1", - "ast-types-flow": "0.0.7", - "axobject-query": "2.1.2", - "damerau-levenshtein": "1.0.6", - "emoji-regex": "7.0.3", - "has": "1.0.3", - "jsx-ast-utils": "2.2.3" + "@babel/runtime": "^7.4.5", + "aria-query": "^3.0.0", + "array-includes": "^3.0.3", + "ast-types-flow": "^0.0.7", + "axobject-query": "^2.0.2", + "damerau-levenshtein": "^1.0.4", + "emoji-regex": "^7.0.2", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.1" }, "dependencies": { "emoji-regex": { @@ -4993,18 +5947,18 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz", "integrity": "sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ==", "requires": { - "array-includes": "3.1.1", - "doctrine": "2.1.0", - "has": "1.0.3", - "jsx-ast-utils": "2.2.3", - "object.entries": "1.1.1", - "object.fromentries": "2.0.2", - "object.values": "1.1.1", - "prop-types": "15.7.2", - "resolve": "1.15.1", - "semver": "6.3.0", - "string.prototype.matchall": "4.0.2", - "xregexp": "4.3.0" + "array-includes": "^3.1.1", + "doctrine": "^2.1.0", + "has": "^1.0.3", + "jsx-ast-utils": "^2.2.3", + "object.entries": "^1.1.1", + "object.fromentries": "^2.0.2", + "object.values": "^1.1.1", + "prop-types": "^15.7.2", + "resolve": "^1.15.1", + "semver": "^6.3.0", + "string.prototype.matchall": "^4.0.2", + "xregexp": "^4.3.0" }, "dependencies": { "doctrine": { @@ -5012,7 +5966,7 @@ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "requires": { - "esutils": "2.0.3" + "esutils": "^2.0.2" } }, "resolve": { @@ -5020,7 +5974,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.1.tgz", "integrity": "sha512-84oo6ZTtoTUpjgNEr5SJyzQhzL72gaRodsSfyxC/AXRvwu0Yse9H8eF9IpGo7b8YetZhlI6v7ZQ6bKBFV/6S7w==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } } } @@ -5035,8 +5989,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.3.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "eslint-utils": { @@ -5044,7 +5998,7 @@ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.0.0.tgz", "integrity": "sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA==", "requires": { - "eslint-visitor-keys": "1.1.0" + "eslint-visitor-keys": "^1.1.0" } }, "eslint-visitor-keys": { @@ -5057,9 +6011,9 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz", "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==", "requires": { - "acorn": "7.1.1", - "acorn-jsx": "5.2.0", - "eslint-visitor-keys": "1.1.0" + "acorn": "^7.1.1", + "acorn-jsx": "^5.2.0", + "eslint-visitor-keys": "^1.1.0" } }, "esprima": { @@ -5072,7 +6026,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.2.0.tgz", "integrity": "sha512-weltsSqdeWIX9G2qQZz7KlTRJdkkOCTPgLYJUz1Hacf48R4YOwGPHO3+ORfWedqJKbq5WQmsgK90n+pFLIKt/Q==", "requires": { - "estraverse": "5.0.0" + "estraverse": "^5.0.0" }, "dependencies": { "estraverse": { @@ -5087,7 +6041,7 @@ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", "requires": { - "estraverse": "4.3.0" + "estraverse": "^4.1.0" } }, "estraverse": { @@ -5120,7 +6074,7 @@ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", "requires": { - "original": "1.0.2" + "original": "^1.0.0" } }, "evp_bytestokey": { @@ -5128,8 +6082,8 @@ "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", "requires": { - "md5.js": "1.3.5", - "safe-buffer": "5.1.2" + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" } }, "exec-sh": { @@ -5142,13 +6096,13 @@ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", "requires": { - "cross-spawn": "6.0.5", - "get-stream": "4.1.0", - "is-stream": "1.1.0", - "npm-run-path": "2.0.2", - "p-finally": "1.0.0", - "signal-exit": "3.0.2", - "strip-eof": "1.0.0" + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" } }, "exit": { @@ -5161,13 +6115,13 @@ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", "requires": { - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "posix-character-classes": "0.1.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "debug": { @@ -5183,7 +6137,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -5191,7 +6145,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "ms": { @@ -5206,12 +6160,12 @@ "resolved": "https://registry.npmjs.org/expect/-/expect-24.9.0.tgz", "integrity": "sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q==", "requires": { - "@jest/types": "24.9.0", - "ansi-styles": "3.2.1", - "jest-get-type": "24.9.0", - "jest-matcher-utils": "24.9.0", - "jest-message-util": "24.9.0", - "jest-regex-util": "24.9.0" + "@jest/types": "^24.9.0", + "ansi-styles": "^3.2.0", + "jest-get-type": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-regex-util": "^24.9.0" } }, "express": { @@ -5219,36 +6173,36 @@ "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", "requires": { - "accepts": "1.3.7", + "accepts": "~1.3.7", "array-flatten": "1.1.1", "body-parser": "1.19.0", "content-disposition": "0.5.3", - "content-type": "1.0.4", + "content-type": "~1.0.4", "cookie": "0.4.0", "cookie-signature": "1.0.6", "debug": "2.6.9", - "depd": "1.1.2", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", - "finalhandler": "1.1.2", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", "fresh": "0.5.2", "merge-descriptors": "1.0.1", - "methods": "1.1.2", - "on-finished": "2.3.0", - "parseurl": "1.3.3", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", "path-to-regexp": "0.1.7", - "proxy-addr": "2.0.6", + "proxy-addr": "~2.0.5", "qs": "6.7.0", - "range-parser": "1.2.1", + "range-parser": "~1.2.1", "safe-buffer": "5.1.2", "send": "0.17.1", "serve-static": "1.14.1", "setprototypeof": "1.1.1", - "statuses": "1.5.0", - "type-is": "1.6.18", + "statuses": "~1.5.0", + "type-is": "~1.6.18", "utils-merge": "1.0.1", - "vary": "1.1.2" + "vary": "~1.1.2" }, "dependencies": { "array-flatten": { @@ -5281,7 +6235,7 @@ "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", "requires": { - "type": "2.0.0" + "type": "^2.0.0" }, "dependencies": { "type": { @@ -5301,8 +6255,8 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", "requires": { - "assign-symbols": "1.0.0", - "is-extendable": "1.0.1" + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -5310,7 +6264,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -5320,9 +6274,9 @@ "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "requires": { - "chardet": "0.7.0", - "iconv-lite": "0.4.24", - "tmp": "0.0.33" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, "extglob": { @@ -5330,14 +6284,14 @@ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", "requires": { - "array-unique": "0.3.2", - "define-property": "1.0.0", - "expand-brackets": "2.1.4", - "extend-shallow": "2.0.1", - "fragment-cache": "0.2.1", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "define-property": { @@ -5345,7 +6299,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "extend-shallow": { @@ -5353,7 +6307,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "is-accessor-descriptor": { @@ -5361,7 +6315,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -5369,7 +6323,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -5377,9 +6331,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -5389,6 +6343,35 @@ } } }, + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "dev": true, + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -5404,12 +6387,12 @@ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", "integrity": "sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==", "requires": { - "@mrmlnc/readdir-enhanced": "2.2.1", - "@nodelib/fs.stat": "1.1.3", - "glob-parent": "3.1.0", - "is-glob": "4.0.1", - "merge2": "1.3.0", - "micromatch": "3.1.10" + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" }, "dependencies": { "glob-parent": { @@ -5417,8 +6400,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -5426,7 +6409,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -5448,7 +6431,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", "requires": { - "websocket-driver": "0.7.3" + "websocket-driver": ">=0.5.1" } }, "fb-watchman": { @@ -5459,6 +6442,15 @@ "bser": "2.1.1" } }, + "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" + } + }, "figgy-pudding": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.1.tgz", @@ -5469,7 +6461,7 @@ "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", "requires": { - "escape-string-regexp": "1.0.5" + "escape-string-regexp": "^1.0.5" } }, "file-entry-cache": { @@ -5477,7 +6469,7 @@ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", "requires": { - "flat-cache": "2.0.1" + "flat-cache": "^2.0.1" } }, "file-loader": { @@ -5485,8 +6477,8 @@ "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.3.0.tgz", "integrity": "sha512-aKrYPYjF1yG3oX0kWRrqrSMfgftm7oJW5M+m4owoldH5C51C0RkIwB++JbRvEW3IU6/ZG5n8UvEcdgwOt2UOWA==", "requires": { - "loader-utils": "1.4.0", - "schema-utils": "2.6.5" + "loader-utils": "^1.2.3", + "schema-utils": "^2.5.0" } }, "file-uri-to-path": { @@ -5495,6 +6487,15 @@ "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", "optional": true }, + "filelist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.1.tgz", + "integrity": "sha512-8zSK6Nu0DQIC08mUC46sWGXi+q3GGpKydAG36k+JDba6VRpkevvOWUW5a/PhShij4+vHT9M+ghgG7eM+a9JDUQ==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "filesize": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.0.1.tgz", @@ -5505,10 +6506,10 @@ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", "requires": { - "extend-shallow": "2.0.1", - "is-number": "3.0.0", - "repeat-string": "1.6.1", - "to-regex-range": "2.1.1" + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" }, "dependencies": { "extend-shallow": { @@ -5516,7 +6517,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -5527,12 +6528,12 @@ "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "requires": { "debug": "2.6.9", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "on-finished": "2.3.0", - "parseurl": "1.3.3", - "statuses": "1.5.0", - "unpipe": "1.0.0" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -5555,9 +6556,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", "requires": { - "commondir": "1.0.1", - "make-dir": "2.1.0", - "pkg-dir": "3.0.0" + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" } }, "find-up": { @@ -5565,7 +6566,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", "requires": { - "locate-path": "3.0.0" + "locate-path": "^3.0.0" } }, "flat-cache": { @@ -5573,7 +6574,7 @@ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", "requires": { - "flatted": "2.0.1", + "flatted": "^2.0.0", "rimraf": "2.6.3", "write": "1.0.3" } @@ -5593,8 +6594,8 @@ "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", "requires": { - "inherits": "2.0.4", - "readable-stream": "2.3.7" + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" }, "dependencies": { "readable-stream": { @@ -5602,13 +6603,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -5616,7 +6617,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -5626,7 +6627,7 @@ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.10.0.tgz", "integrity": "sha512-4eyLK6s6lH32nOvLLwlIOnr9zrL8Sm+OvW4pVTJNoXeGzYIkHVf+pADQi+OJ0E67hiuSLezPVPyBcIZO50TmmQ==", "requires": { - "debug": "3.2.6" + "debug": "^3.0.0" }, "dependencies": { "debug": { @@ -5634,7 +6635,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } } } @@ -5649,7 +6650,7 @@ "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "requires": { - "for-in": "1.0.2" + "for-in": "^1.0.1" } }, "forever-agent": { @@ -5662,14 +6663,14 @@ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-3.1.1.tgz", "integrity": "sha512-DuVkPNrM12jR41KM2e+N+styka0EgLkTnXmNcXdgOM37vtGeY+oCBK/Jx0hzSeEU6memFCtWb4htrHPMDfwwUQ==", "requires": { - "babel-code-frame": "6.26.0", - "chalk": "2.4.2", - "chokidar": "3.3.1", - "micromatch": "3.1.10", - "minimatch": "3.0.4", - "semver": "5.7.1", - "tapable": "1.1.3", - "worker-rpc": "0.1.1" + "babel-code-frame": "^6.22.0", + "chalk": "^2.4.1", + "chokidar": "^3.3.0", + "micromatch": "^3.1.10", + "minimatch": "^3.0.4", + "semver": "^5.6.0", + "tapable": "^1.0.0", + "worker-rpc": "^0.1.0" }, "dependencies": { "semver": { @@ -5684,9 +6685,9 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "requires": { - "asynckit": "0.4.0", - "combined-stream": "1.0.8", - "mime-types": "2.1.26" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, "forwarded": { @@ -5699,7 +6700,7 @@ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", "requires": { - "map-cache": "0.2.2" + "map-cache": "^0.2.2" } }, "fresh": { @@ -5712,8 +6713,8 @@ "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", "requires": { - "inherits": "2.0.4", - "readable-stream": "2.3.7" + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" }, "dependencies": { "readable-stream": { @@ -5721,13 +6722,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -5735,7 +6736,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -5745,9 +6746,9 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "requires": { - "graceful-fs": "4.2.3", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } }, "fs-minipass": { @@ -5755,7 +6756,7 @@ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "fs-write-stream-atomic": { @@ -5763,10 +6764,10 @@ "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", "requires": { - "graceful-fs": "4.2.3", - "iferr": "0.1.5", - "imurmurhash": "0.1.4", - "readable-stream": "2.3.7" + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" }, "dependencies": { "readable-stream": { @@ -5774,13 +6775,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -5788,7 +6789,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -5834,7 +6835,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", "requires": { - "pump": "3.0.0" + "pump": "^3.0.0" } }, "get-value": { @@ -5847,7 +6848,7 @@ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "requires": { - "assert-plus": "1.0.0" + "assert-plus": "^1.0.0" } }, "glob": { @@ -5855,12 +6856,12 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==", "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "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" } }, "glob-parent": { @@ -5868,7 +6869,7 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "requires": { - "is-glob": "4.0.1" + "is-glob": "^4.0.1" } }, "glob-to-regexp": { @@ -5876,12 +6877,46 @@ "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz", "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=" }, + "global-agent": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.8.tgz", + "integrity": "sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.0", + "core-js": "^3.6.4", + "es6-error": "^4.1.1", + "matcher": "^2.1.0", + "roarr": "^2.15.2", + "semver": "^7.1.2", + "serialize-error": "^5.0.0" + }, + "dependencies": { + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", + "dev": true, + "optional": true + } + } + }, + "global-dirs": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", + "dev": true, + "requires": { + "ini": "^1.3.5" + } + }, "global-modules": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", "requires": { - "global-prefix": "3.0.0" + "global-prefix": "^3.0.0" } }, "global-prefix": { @@ -5889,9 +6924,9 @@ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", "requires": { - "ini": "1.3.5", - "kind-of": "6.0.3", - "which": "1.3.1" + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" }, "dependencies": { "kind-of": { @@ -5901,23 +6936,46 @@ } } }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "dev": true, + "optional": true, + "requires": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" }, + "globalthis": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", + "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "dev": true, + "optional": true, + "requires": { + "define-properties": "^1.1.3" + } + }, "globby": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/globby/-/globby-8.0.2.tgz", "integrity": "sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==", "requires": { - "array-union": "1.0.2", + "array-union": "^1.0.1", "dir-glob": "2.0.0", - "fast-glob": "2.2.7", - "glob": "7.1.6", - "ignore": "3.3.10", - "pify": "3.0.0", - "slash": "1.0.0" + "fast-glob": "^2.0.2", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" }, "dependencies": { "ignore": { @@ -5932,6 +6990,25 @@ } } }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "dev": true, + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, "graceful-fs": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.3.tgz", @@ -5952,8 +7029,8 @@ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-5.1.1.tgz", "integrity": "sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA==", "requires": { - "duplexer": "0.1.1", - "pify": "4.0.1" + "duplexer": "^0.1.1", + "pify": "^4.0.1" }, "dependencies": { "pify": { @@ -5978,8 +7055,8 @@ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz", "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==", "requires": { - "ajv": "6.12.0", - "har-schema": "2.0.0" + "ajv": "^6.5.5", + "har-schema": "^2.0.0" } }, "harmony-reflect": { @@ -5992,7 +7069,7 @@ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", "requires": { - "function-bind": "1.1.1" + "function-bind": "^1.1.1" } }, "has-ansi": { @@ -6000,7 +7077,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -6025,9 +7102,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", "requires": { - "get-value": "2.0.6", - "has-values": "1.0.0", - "isobject": "3.0.1" + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" } }, "has-values": { @@ -6035,8 +7112,8 @@ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", "requires": { - "is-number": "3.0.0", - "kind-of": "4.0.0" + "is-number": "^3.0.0", + "kind-of": "^4.0.0" }, "dependencies": { "kind-of": { @@ -6044,18 +7121,24 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } } } }, + "has-yarn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", + "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "dev": true + }, "hash-base": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", "requires": { - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "hash.js": { @@ -6063,8 +7146,8 @@ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", "requires": { - "inherits": "2.0.4", - "minimalistic-assert": "1.0.1" + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" } }, "he": { @@ -6082,12 +7165,12 @@ "resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz", "integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==", "requires": { - "@babel/runtime": "7.9.2", - "loose-envify": "1.4.0", - "resolve-pathname": "3.0.0", - "tiny-invariant": "1.1.0", - "tiny-warning": "1.0.3", - "value-equal": "1.0.1" + "@babel/runtime": "^7.1.2", + "loose-envify": "^1.2.0", + "resolve-pathname": "^3.0.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0", + "value-equal": "^1.0.1" } }, "hmac-drbg": { @@ -6095,9 +7178,9 @@ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", "requires": { - "hash.js": "1.1.7", - "minimalistic-assert": "1.0.1", - "minimalistic-crypto-utils": "1.0.1" + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" } }, "hoist-non-react-statics": { @@ -6105,7 +7188,7 @@ "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", "requires": { - "react-is": "16.13.1" + "react-is": "^16.7.0" } }, "hosted-git-info": { @@ -6118,10 +7201,10 @@ "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", "requires": { - "inherits": "2.0.4", - "obuf": "1.1.2", - "readable-stream": "2.3.7", - "wbuf": "1.7.3" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" }, "dependencies": { "readable-stream": { @@ -6129,13 +7212,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -6143,7 +7226,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -6168,7 +7251,7 @@ "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", "requires": { - "whatwg-encoding": "1.0.5" + "whatwg-encoding": "^1.0.1" } }, "html-entities": { @@ -6186,13 +7269,13 @@ "resolved": "https://registry.npmjs.org/html-minifier-terser/-/html-minifier-terser-5.0.4.tgz", "integrity": "sha512-fHwmKQ+GzhlqdxEtwrqLT7MSuheiA+rif5/dZgbz3GjoMXJzcRzy1L9NXoiiyxrnap+q5guSiv8Tz5lrh9g42g==", "requires": { - "camel-case": "4.1.1", - "clean-css": "4.2.3", - "commander": "4.1.1", - "he": "1.2.0", - "param-case": "3.0.3", - "relateurl": "0.2.7", - "terser": "4.6.7" + "camel-case": "^4.1.1", + "clean-css": "^4.2.3", + "commander": "^4.1.1", + "he": "^1.2.0", + "param-case": "^3.0.3", + "relateurl": "^0.2.7", + "terser": "^4.6.3" }, "dependencies": { "commander": { @@ -6207,11 +7290,11 @@ "resolved": "https://registry.npmjs.org/html-webpack-plugin/-/html-webpack-plugin-4.0.0-beta.11.tgz", "integrity": "sha512-4Xzepf0qWxf8CGg7/WQM5qBB2Lc/NFI7MhU59eUDTkuQp3skZczH4UA1d6oQyDEIoMDgERVhRyTdtUPZ5s5HBg==", "requires": { - "html-minifier-terser": "5.0.4", - "loader-utils": "1.4.0", - "lodash": "4.17.15", - "pretty-error": "2.1.1", - "tapable": "1.1.3", + "html-minifier-terser": "^5.0.1", + "loader-utils": "^1.2.3", + "lodash": "^4.17.15", + "pretty-error": "^2.1.1", + "tapable": "^1.1.3", "util.promisify": "1.0.0" }, "dependencies": { @@ -6220,8 +7303,8 @@ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", "requires": { - "define-properties": "1.1.3", - "object.getownpropertydescriptors": "2.1.0" + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" } } } @@ -6231,12 +7314,12 @@ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", "requires": { - "domelementtype": "1.3.1", - "domhandler": "2.4.2", - "domutils": "1.7.0", - "entities": "1.1.2", - "inherits": "2.0.4", - "readable-stream": "3.6.0" + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" }, "dependencies": { "entities": { @@ -6246,6 +7329,12 @@ } } }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, "http-deceiver": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", @@ -6256,10 +7345,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.1", - "statuses": "1.5.0", + "statuses": ">= 1.5.0 < 2", "toidentifier": "1.0.0" }, "dependencies": { @@ -6280,9 +7369,9 @@ "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.0.tgz", "integrity": "sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ==", "requires": { - "eventemitter3": "4.0.0", - "follow-redirects": "1.10.0", - "requires-port": "1.0.0" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, "http-proxy-middleware": { @@ -6290,10 +7379,10 @@ "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", "requires": { - "http-proxy": "1.18.0", - "is-glob": "4.0.1", - "lodash": "4.17.15", - "micromatch": "3.1.10" + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" } }, "http-signature": { @@ -6301,9 +7390,9 @@ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "requires": { - "assert-plus": "1.0.0", - "jsprim": "1.4.1", - "sshpk": "1.16.1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, "https-browserify": { @@ -6316,7 +7405,7 @@ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "icss-utils": { @@ -6324,7 +7413,7 @@ "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-4.1.1.tgz", "integrity": "sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.14" } }, "identity-obj-proxy": { @@ -6332,7 +7421,7 @@ "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", "integrity": "sha1-lNK9qWCERT7zb7xarsN+D3nx/BQ=", "requires": { - "harmony-reflect": "1.6.1" + "harmony-reflect": "^1.4.6" } }, "ieee754": { @@ -6360,7 +7449,7 @@ "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", "requires": { - "import-from": "2.1.0" + "import-from": "^2.1.0" } }, "import-fresh": { @@ -6368,8 +7457,8 @@ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", "requires": { - "caller-path": "2.0.0", - "resolve-from": "3.0.0" + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" } }, "import-from": { @@ -6377,16 +7466,22 @@ "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", + "dev": true + }, "import-local": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", "requires": { - "pkg-dir": "3.0.0", - "resolve-cwd": "2.0.0" + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" } }, "imurmurhash": { @@ -6414,8 +7509,8 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { @@ -6433,19 +7528,19 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz", "integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==", "requires": { - "ansi-escapes": "4.3.1", - "chalk": "3.0.0", - "cli-cursor": "3.1.0", - "cli-width": "2.2.0", - "external-editor": "3.1.0", - "figures": "3.2.0", - "lodash": "4.17.15", + "ansi-escapes": "^4.2.1", + "chalk": "^3.0.0", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", "mute-stream": "0.0.8", - "run-async": "2.4.0", - "rxjs": "6.5.4", - "string-width": "4.2.0", - "strip-ansi": "6.0.0", - "through": "2.3.8" + "run-async": "^2.4.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6" }, "dependencies": { "ansi-styles": { @@ -6453,8 +7548,8 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", "requires": { - "@types/color-name": "1.1.1", - "color-convert": "2.0.1" + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" } }, "chalk": { @@ -6462,8 +7557,8 @@ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", "requires": { - "ansi-styles": "4.2.1", - "supports-color": "7.1.0" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" } }, "color-convert": { @@ -6471,7 +7566,7 @@ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "requires": { - "color-name": "1.1.4" + "color-name": "~1.1.4" } }, "color-name": { @@ -6489,7 +7584,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } }, "supports-color": { @@ -6497,7 +7592,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "has-flag": "4.0.0" + "has-flag": "^4.0.0" } } } @@ -6507,8 +7602,8 @@ "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", "requires": { - "default-gateway": "4.2.0", - "ipaddr.js": "1.9.1" + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" } }, "internal-slot": { @@ -6516,9 +7611,9 @@ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.2.tgz", "integrity": "sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g==", "requires": { - "es-abstract": "1.17.5", - "has": "1.0.3", - "side-channel": "1.0.2" + "es-abstract": "^1.17.0-next.1", + "has": "^1.0.3", + "side-channel": "^1.0.2" } }, "invariant": { @@ -6526,7 +7621,7 @@ "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "invert-kv": { @@ -6559,7 +7654,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-arguments": { @@ -6577,7 +7672,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "requires": { - "binary-extensions": "2.0.0" + "binary-extensions": "^2.0.0" } }, "is-buffer": { @@ -6595,7 +7690,7 @@ "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", "requires": { - "ci-info": "2.0.0" + "ci-info": "^2.0.0" } }, "is-color-stop": { @@ -6603,12 +7698,12 @@ "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", "requires": { - "css-color-names": "0.0.4", - "hex-color-regex": "1.1.0", - "hsl-regex": "1.0.0", - "hsla-regex": "1.0.0", - "rgb-regex": "1.0.1", - "rgba-regex": "1.0.0" + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" } }, "is-data-descriptor": { @@ -6616,7 +7711,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-date-object": { @@ -6629,9 +7724,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", "requires": { - "is-accessor-descriptor": "0.1.6", - "is-data-descriptor": "0.1.4", - "kind-of": "5.1.0" + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" }, "dependencies": { "kind-of": { @@ -6676,15 +7771,39 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.1" + } + }, + "is-installed-globally": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", + "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "dev": true, + "requires": { + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" + }, + "dependencies": { + "is-path-inside": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true + } } }, + "is-npm": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", + "dev": true + }, "is-number": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, "is-obj": { @@ -6702,7 +7821,7 @@ "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", "requires": { - "is-path-inside": "2.1.0" + "is-path-inside": "^2.1.0" } }, "is-path-inside": { @@ -6710,7 +7829,7 @@ "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", "requires": { - "path-is-inside": "1.0.2" + "path-is-inside": "^1.0.2" } }, "is-plain-obj": { @@ -6723,7 +7842,7 @@ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "is-promise": { @@ -6736,7 +7855,7 @@ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", "requires": { - "has": "1.0.3" + "has": "^1.0.3" } }, "is-regexp": { @@ -6769,7 +7888,7 @@ "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", "requires": { - "html-comment-regex": "1.1.2" + "html-comment-regex": "^1.1.0" } }, "is-symbol": { @@ -6777,7 +7896,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", "requires": { - "has-symbols": "1.0.1" + "has-symbols": "^1.0.1" } }, "is-typedarray": { @@ -6795,11 +7914,23 @@ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=" }, + "is-yarn-global": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", + "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", + "dev": true + }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, + "isbinaryfile": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.6.tgz", + "integrity": "sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg==", + "dev": true + }, "isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -6825,13 +7956,13 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", "requires": { - "@babel/generator": "7.9.3", - "@babel/parser": "7.9.3", - "@babel/template": "7.8.6", - "@babel/traverse": "7.9.0", - "@babel/types": "7.9.0", - "istanbul-lib-coverage": "2.0.5", - "semver": "6.3.0" + "@babel/generator": "^7.4.0", + "@babel/parser": "^7.4.3", + "@babel/template": "^7.4.0", + "@babel/traverse": "^7.4.3", + "@babel/types": "^7.4.0", + "istanbul-lib-coverage": "^2.0.5", + "semver": "^6.0.0" } }, "istanbul-lib-report": { @@ -6839,9 +7970,9 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", "requires": { - "istanbul-lib-coverage": "2.0.5", - "make-dir": "2.1.0", - "supports-color": "6.1.0" + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "supports-color": "^6.1.0" }, "dependencies": { "supports-color": { @@ -6849,7 +7980,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -6859,11 +7990,11 @@ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", "requires": { - "debug": "4.1.1", - "istanbul-lib-coverage": "2.0.5", - "make-dir": "2.1.0", - "rimraf": "2.6.3", - "source-map": "0.6.1" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" }, "dependencies": { "source-map": { @@ -6878,7 +8009,27 @@ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", "requires": { - "html-escaper": "2.0.1" + "html-escaper": "^2.0.0" + } + }, + "jake": { + "version": "10.6.1", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.6.1.tgz", + "integrity": "sha512-pHUK3+V0BjOb1XSi95rbBksrMdIqLVC9bJqDnshVyleYsET3H0XAq+3VB2E3notcYvv4wRdRHn13p7vobG+wfQ==", + "dev": true, + "requires": { + "async": "0.9.x", + "chalk": "^2.4.2", + "filelist": "^1.0.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "async": { + "version": "0.9.2", + "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz", + "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=", + "dev": true + } } }, "jest": { @@ -6886,8 +8037,8 @@ "resolved": "https://registry.npmjs.org/jest/-/jest-24.9.0.tgz", "integrity": "sha512-YvkBL1Zm7d2B1+h5fHEOdyjCG+sGMz4f8D86/0HiqJ6MB4MnDc8FgP5vdWsGnemOQro7lnYo8UakZ3+5A0jxGw==", "requires": { - "import-local": "2.0.0", - "jest-cli": "24.9.0" + "import-local": "^2.0.0", + "jest-cli": "^24.9.0" }, "dependencies": { "jest-cli": { @@ -6895,19 +8046,19 @@ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.9.0.tgz", "integrity": "sha512-+VLRKyitT3BWoMeSUIHRxV/2g8y9gw91Jh5z2UmXZzkZKpbC08CSehVxgHUwTpy+HwGcns/tqafQDJW7imYvGg==", "requires": { - "@jest/core": "24.9.0", - "@jest/test-result": "24.9.0", - "@jest/types": "24.9.0", - "chalk": "2.4.2", - "exit": "0.1.2", - "import-local": "2.0.0", - "is-ci": "2.0.0", - "jest-config": "24.9.0", - "jest-util": "24.9.0", - "jest-validate": "24.9.0", - "prompts": "2.3.2", - "realpath-native": "1.1.0", - "yargs": "13.3.2" + "@jest/core": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "import-local": "^2.0.0", + "is-ci": "^2.0.0", + "jest-config": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "prompts": "^2.0.1", + "realpath-native": "^1.1.0", + "yargs": "^13.3.0" } } } @@ -6917,9 +8068,9 @@ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.9.0.tgz", "integrity": "sha512-6aTWpe2mHF0DhL28WjdkO8LyGjs3zItPET4bMSeXU6T3ub4FPMw+mcOcbdGXQOAfmLcxofD23/5Bl9Z4AkFwqg==", "requires": { - "@jest/types": "24.9.0", - "execa": "1.0.0", - "throat": "4.1.0" + "@jest/types": "^24.9.0", + "execa": "^1.0.0", + "throat": "^4.0.0" } }, "jest-config": { @@ -6927,23 +8078,23 @@ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.9.0.tgz", "integrity": "sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ==", "requires": { - "@babel/core": "7.9.0", - "@jest/test-sequencer": "24.9.0", - "@jest/types": "24.9.0", - "babel-jest": "24.9.0", - "chalk": "2.4.2", - "glob": "7.1.6", - "jest-environment-jsdom": "24.9.0", - "jest-environment-node": "24.9.0", - "jest-get-type": "24.9.0", - "jest-jasmine2": "24.9.0", - "jest-regex-util": "24.9.0", - "jest-resolve": "24.9.0", - "jest-util": "24.9.0", - "jest-validate": "24.9.0", - "micromatch": "3.1.10", - "pretty-format": "24.9.0", - "realpath-native": "1.1.0" + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^24.9.0", + "@jest/types": "^24.9.0", + "babel-jest": "^24.9.0", + "chalk": "^2.0.1", + "glob": "^7.1.1", + "jest-environment-jsdom": "^24.9.0", + "jest-environment-node": "^24.9.0", + "jest-get-type": "^24.9.0", + "jest-jasmine2": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "micromatch": "^3.1.10", + "pretty-format": "^24.9.0", + "realpath-native": "^1.1.0" } }, "jest-diff": { @@ -6951,10 +8102,10 @@ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.9.0.tgz", "integrity": "sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ==", "requires": { - "chalk": "2.4.2", - "diff-sequences": "24.9.0", - "jest-get-type": "24.9.0", - "pretty-format": "24.9.0" + "chalk": "^2.0.1", + "diff-sequences": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" } }, "jest-docblock": { @@ -6962,7 +8113,7 @@ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.9.0.tgz", "integrity": "sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA==", "requires": { - "detect-newline": "2.1.0" + "detect-newline": "^2.1.0" } }, "jest-each": { @@ -6970,11 +8121,11 @@ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.9.0.tgz", "integrity": "sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog==", "requires": { - "@jest/types": "24.9.0", - "chalk": "2.4.2", - "jest-get-type": "24.9.0", - "jest-util": "24.9.0", - "pretty-format": "24.9.0" + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "jest-util": "^24.9.0", + "pretty-format": "^24.9.0" } }, "jest-environment-jsdom": { @@ -6982,12 +8133,12 @@ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz", "integrity": "sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA==", "requires": { - "@jest/environment": "24.9.0", - "@jest/fake-timers": "24.9.0", - "@jest/types": "24.9.0", - "jest-mock": "24.9.0", - "jest-util": "24.9.0", - "jsdom": "11.12.0" + "@jest/environment": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-util": "^24.9.0", + "jsdom": "^11.5.1" } }, "jest-environment-jsdom-fourteen": { @@ -6995,12 +8146,12 @@ "resolved": "https://registry.npmjs.org/jest-environment-jsdom-fourteen/-/jest-environment-jsdom-fourteen-1.0.1.tgz", "integrity": "sha512-DojMX1sY+at5Ep+O9yME34CdidZnO3/zfPh8UW+918C5fIZET5vCjfkegixmsi7AtdYfkr4bPlIzmWnlvQkP7Q==", "requires": { - "@jest/environment": "24.9.0", - "@jest/fake-timers": "24.9.0", - "@jest/types": "24.9.0", - "jest-mock": "24.9.0", - "jest-util": "24.9.0", - "jsdom": "14.1.0" + "@jest/environment": "^24.3.0", + "@jest/fake-timers": "^24.3.0", + "@jest/types": "^24.3.0", + "jest-mock": "^24.0.0", + "jest-util": "^24.0.0", + "jsdom": "^14.1.0" }, "dependencies": { "acorn": { @@ -7013,32 +8164,32 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-14.1.0.tgz", "integrity": "sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng==", "requires": { - "abab": "2.0.3", - "acorn": "6.4.1", - "acorn-globals": "4.3.4", - "array-equal": "1.0.0", - "cssom": "0.3.8", - "cssstyle": "1.4.0", - "data-urls": "1.1.0", - "domexception": "1.0.1", - "escodegen": "1.14.1", - "html-encoding-sniffer": "1.0.2", - "nwsapi": "2.2.0", + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.1.3", "parse5": "5.1.0", - "pn": "1.1.0", - "request": "2.88.2", - "request-promise-native": "1.0.8", - "saxes": "3.1.11", - "symbol-tree": "3.2.4", - "tough-cookie": "2.5.0", - "w3c-hr-time": "1.0.2", - "w3c-xmlserializer": "1.1.2", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.5", - "whatwg-mimetype": "2.3.0", - "whatwg-url": "7.1.0", - "ws": "6.2.1", - "xml-name-validator": "3.0.0" + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.9", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.1.2", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" } }, "parse5": { @@ -7051,9 +8202,9 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "ws": { @@ -7061,7 +8212,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", "requires": { - "async-limiter": "1.0.1" + "async-limiter": "~1.0.0" } } } @@ -7071,11 +8222,11 @@ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.9.0.tgz", "integrity": "sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA==", "requires": { - "@jest/environment": "24.9.0", - "@jest/fake-timers": "24.9.0", - "@jest/types": "24.9.0", - "jest-mock": "24.9.0", - "jest-util": "24.9.0" + "@jest/environment": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/types": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-util": "^24.9.0" } }, "jest-get-type": { @@ -7088,18 +8239,18 @@ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.9.0.tgz", "integrity": "sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ==", "requires": { - "@jest/types": "24.9.0", - "anymatch": "2.0.0", - "fb-watchman": "2.0.1", - "fsevents": "1.2.12", - "graceful-fs": "4.2.3", - "invariant": "2.2.4", - "jest-serializer": "24.9.0", - "jest-util": "24.9.0", - "jest-worker": "24.9.0", - "micromatch": "3.1.10", - "sane": "4.1.0", - "walker": "1.0.7" + "@jest/types": "^24.9.0", + "anymatch": "^2.0.0", + "fb-watchman": "^2.0.0", + "fsevents": "^1.2.7", + "graceful-fs": "^4.1.15", + "invariant": "^2.2.4", + "jest-serializer": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.9.0", + "micromatch": "^3.1.10", + "sane": "^4.0.3", + "walker": "^1.0.7" }, "dependencies": { "fsevents": { @@ -7108,9 +8259,9 @@ "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", "optional": true, "requires": { - "bindings": "1.5.0", - "nan": "2.14.0", - "node-pre-gyp": "0.14.0" + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -7120,7 +8271,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -7132,19 +8284,21 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.7" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -7155,15 +8309,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -7175,7 +8332,7 @@ "bundled": true, "optional": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "deep-extend": { @@ -7198,7 +8355,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.9.0" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -7211,14 +8368,14 @@ "bundled": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -7226,12 +8383,12 @@ "bundled": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "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" } }, "has-unicode": { @@ -7244,7 +8401,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -7252,7 +8409,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -7260,13 +8417,14 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.4", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -7276,8 +8434,9 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -7288,20 +8447,23 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.9.0", "bundled": true, + "optional": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.1.1" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "minizlib": { @@ -7309,14 +8471,15 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.9.0" + "minipass": "^2.9.0" } }, "mkdirp": { "version": "0.5.3", "bundled": true, + "optional": true, "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.5" } }, "ms": { @@ -7329,9 +8492,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "3.2.6", - "iconv-lite": "0.4.24", - "sax": "1.2.4" + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -7339,16 +8502,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.3", - "needle": "2.3.3", - "nopt": "4.0.3", - "npm-packlist": "1.4.8", - "npmlog": "4.1.2", - "rc": "1.2.8", - "rimraf": "2.7.1", - "semver": "5.7.1", - "tar": "4.4.13" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" } }, "nopt": { @@ -7356,8 +8519,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -7365,21 +8528,22 @@ "bundled": true, "optional": true, "requires": { - "npm-normalize-package-bin": "1.0.1" + "npm-normalize-package-bin": "^1.0.1" } }, "npm-normalize-package-bin": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "npm-packlist": { "version": "1.4.8", "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.3", - "npm-bundled": "1.1.1", - "npm-normalize-package-bin": "1.0.1" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npmlog": { @@ -7387,15 +8551,16 @@ "bundled": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -7405,8 +8570,9 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -7424,8 +8590,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -7443,10 +8609,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.5", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "readable-stream": { @@ -7454,13 +8620,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -7468,12 +8634,13 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.6" + "glob": "^7.1.3" } }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -7503,10 +8670,11 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -7514,14 +8682,15 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -7534,13 +8703,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.1.4", - "fs-minipass": "1.2.7", - "minipass": "2.9.0", - "minizlib": "1.3.3", - "mkdirp": "0.5.3", - "safe-buffer": "5.1.2", - "yallist": "3.1.1" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -7553,16 +8722,18 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.1.1", - "bundled": true + "bundled": true, + "optional": true } } } @@ -7573,22 +8744,22 @@ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz", "integrity": "sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw==", "requires": { - "@babel/traverse": "7.9.0", - "@jest/environment": "24.9.0", - "@jest/test-result": "24.9.0", - "@jest/types": "24.9.0", - "chalk": "2.4.2", - "co": "4.6.0", - "expect": "24.9.0", - "is-generator-fn": "2.1.0", - "jest-each": "24.9.0", - "jest-matcher-utils": "24.9.0", - "jest-message-util": "24.9.0", - "jest-runtime": "24.9.0", - "jest-snapshot": "24.9.0", - "jest-util": "24.9.0", - "pretty-format": "24.9.0", - "throat": "4.1.0" + "@babel/traverse": "^7.1.0", + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "co": "^4.6.0", + "expect": "^24.9.0", + "is-generator-fn": "^2.0.0", + "jest-each": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "pretty-format": "^24.9.0", + "throat": "^4.0.0" } }, "jest-leak-detector": { @@ -7596,8 +8767,8 @@ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz", "integrity": "sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA==", "requires": { - "jest-get-type": "24.9.0", - "pretty-format": "24.9.0" + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" } }, "jest-matcher-utils": { @@ -7605,10 +8776,10 @@ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz", "integrity": "sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA==", "requires": { - "chalk": "2.4.2", - "jest-diff": "24.9.0", - "jest-get-type": "24.9.0", - "pretty-format": "24.9.0" + "chalk": "^2.0.1", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "pretty-format": "^24.9.0" } }, "jest-message-util": { @@ -7616,14 +8787,14 @@ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.9.0.tgz", "integrity": "sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw==", "requires": { - "@babel/code-frame": "7.8.3", - "@jest/test-result": "24.9.0", - "@jest/types": "24.9.0", - "@types/stack-utils": "1.0.1", - "chalk": "2.4.2", - "micromatch": "3.1.10", - "slash": "2.0.0", - "stack-utils": "1.0.2" + "@babel/code-frame": "^7.0.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/stack-utils": "^1.0.1", + "chalk": "^2.0.1", + "micromatch": "^3.1.10", + "slash": "^2.0.0", + "stack-utils": "^1.0.1" } }, "jest-mock": { @@ -7631,7 +8802,7 @@ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.9.0.tgz", "integrity": "sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w==", "requires": { - "@jest/types": "24.9.0" + "@jest/types": "^24.9.0" } }, "jest-pnp-resolver": { @@ -7649,11 +8820,11 @@ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.9.0.tgz", "integrity": "sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ==", "requires": { - "@jest/types": "24.9.0", - "browser-resolve": "1.11.3", - "chalk": "2.4.2", - "jest-pnp-resolver": "1.2.1", - "realpath-native": "1.1.0" + "@jest/types": "^24.9.0", + "browser-resolve": "^1.11.3", + "chalk": "^2.0.1", + "jest-pnp-resolver": "^1.2.1", + "realpath-native": "^1.1.0" } }, "jest-resolve-dependencies": { @@ -7661,9 +8832,9 @@ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.9.0.tgz", "integrity": "sha512-Fm7b6AlWnYhT0BXy4hXpactHIqER7erNgIsIozDXWl5dVm+k8XdGVe1oTg1JyaFnOxarMEbax3wyRJqGP2Pq+g==", "requires": { - "@jest/types": "24.9.0", - "jest-regex-util": "24.9.0", - "jest-snapshot": "24.9.0" + "@jest/types": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-snapshot": "^24.9.0" } }, "jest-runner": { @@ -7671,25 +8842,25 @@ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.9.0.tgz", "integrity": "sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg==", "requires": { - "@jest/console": "24.9.0", - "@jest/environment": "24.9.0", - "@jest/test-result": "24.9.0", - "@jest/types": "24.9.0", - "chalk": "2.4.2", - "exit": "0.1.2", - "graceful-fs": "4.2.3", - "jest-config": "24.9.0", - "jest-docblock": "24.9.0", - "jest-haste-map": "24.9.0", - "jest-jasmine2": "24.9.0", - "jest-leak-detector": "24.9.0", - "jest-message-util": "24.9.0", - "jest-resolve": "24.9.0", - "jest-runtime": "24.9.0", - "jest-util": "24.9.0", - "jest-worker": "24.9.0", - "source-map-support": "0.5.16", - "throat": "4.1.0" + "@jest/console": "^24.7.1", + "@jest/environment": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "chalk": "^2.4.2", + "exit": "^0.1.2", + "graceful-fs": "^4.1.15", + "jest-config": "^24.9.0", + "jest-docblock": "^24.3.0", + "jest-haste-map": "^24.9.0", + "jest-jasmine2": "^24.9.0", + "jest-leak-detector": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-resolve": "^24.9.0", + "jest-runtime": "^24.9.0", + "jest-util": "^24.9.0", + "jest-worker": "^24.6.0", + "source-map-support": "^0.5.6", + "throat": "^4.0.0" } }, "jest-runtime": { @@ -7697,29 +8868,29 @@ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.9.0.tgz", "integrity": "sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw==", "requires": { - "@jest/console": "24.9.0", - "@jest/environment": "24.9.0", - "@jest/source-map": "24.9.0", - "@jest/transform": "24.9.0", - "@jest/types": "24.9.0", - "@types/yargs": "13.0.8", - "chalk": "2.4.2", - "exit": "0.1.2", - "glob": "7.1.6", - "graceful-fs": "4.2.3", - "jest-config": "24.9.0", - "jest-haste-map": "24.9.0", - "jest-message-util": "24.9.0", - "jest-mock": "24.9.0", - "jest-regex-util": "24.9.0", - "jest-resolve": "24.9.0", - "jest-snapshot": "24.9.0", - "jest-util": "24.9.0", - "jest-validate": "24.9.0", - "realpath-native": "1.1.0", - "slash": "2.0.0", - "strip-bom": "3.0.0", - "yargs": "13.3.2" + "@jest/console": "^24.7.1", + "@jest/environment": "^24.9.0", + "@jest/source-map": "^24.3.0", + "@jest/transform": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/yargs": "^13.0.0", + "chalk": "^2.0.1", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.1.15", + "jest-config": "^24.9.0", + "jest-haste-map": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-mock": "^24.9.0", + "jest-regex-util": "^24.3.0", + "jest-resolve": "^24.9.0", + "jest-snapshot": "^24.9.0", + "jest-util": "^24.9.0", + "jest-validate": "^24.9.0", + "realpath-native": "^1.1.0", + "slash": "^2.0.0", + "strip-bom": "^3.0.0", + "yargs": "^13.3.0" } }, "jest-serializer": { @@ -7732,19 +8903,19 @@ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.9.0.tgz", "integrity": "sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew==", "requires": { - "@babel/types": "7.9.0", - "@jest/types": "24.9.0", - "chalk": "2.4.2", - "expect": "24.9.0", - "jest-diff": "24.9.0", - "jest-get-type": "24.9.0", - "jest-matcher-utils": "24.9.0", - "jest-message-util": "24.9.0", - "jest-resolve": "24.9.0", - "mkdirp": "0.5.4", - "natural-compare": "1.4.0", - "pretty-format": "24.9.0", - "semver": "6.3.0" + "@babel/types": "^7.0.0", + "@jest/types": "^24.9.0", + "chalk": "^2.0.1", + "expect": "^24.9.0", + "jest-diff": "^24.9.0", + "jest-get-type": "^24.9.0", + "jest-matcher-utils": "^24.9.0", + "jest-message-util": "^24.9.0", + "jest-resolve": "^24.9.0", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "pretty-format": "^24.9.0", + "semver": "^6.2.0" } }, "jest-util": { @@ -7752,18 +8923,18 @@ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.9.0.tgz", "integrity": "sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg==", "requires": { - "@jest/console": "24.9.0", - "@jest/fake-timers": "24.9.0", - "@jest/source-map": "24.9.0", - "@jest/test-result": "24.9.0", - "@jest/types": "24.9.0", - "callsites": "3.1.0", - "chalk": "2.4.2", - "graceful-fs": "4.2.3", - "is-ci": "2.0.0", - "mkdirp": "0.5.4", - "slash": "2.0.0", - "source-map": "0.6.1" + "@jest/console": "^24.9.0", + "@jest/fake-timers": "^24.9.0", + "@jest/source-map": "^24.9.0", + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "callsites": "^3.0.0", + "chalk": "^2.0.1", + "graceful-fs": "^4.1.15", + "is-ci": "^2.0.0", + "mkdirp": "^0.5.1", + "slash": "^2.0.0", + "source-map": "^0.6.0" }, "dependencies": { "callsites": { @@ -7783,12 +8954,12 @@ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.9.0.tgz", "integrity": "sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ==", "requires": { - "@jest/types": "24.9.0", - "camelcase": "5.3.1", - "chalk": "2.4.2", - "jest-get-type": "24.9.0", - "leven": "3.1.0", - "pretty-format": "24.9.0" + "@jest/types": "^24.9.0", + "camelcase": "^5.3.1", + "chalk": "^2.0.1", + "jest-get-type": "^24.9.0", + "leven": "^3.1.0", + "pretty-format": "^24.9.0" } }, "jest-watch-typeahead": { @@ -7796,13 +8967,13 @@ "resolved": "https://registry.npmjs.org/jest-watch-typeahead/-/jest-watch-typeahead-0.4.2.tgz", "integrity": "sha512-f7VpLebTdaXs81rg/oj4Vg/ObZy2QtGzAmGLNsqUS5G5KtSN68tFcIsbvNODfNyQxU78g7D8x77o3bgfBTR+2Q==", "requires": { - "ansi-escapes": "4.3.1", - "chalk": "2.4.2", - "jest-regex-util": "24.9.0", - "jest-watcher": "24.9.0", - "slash": "3.0.0", - "string-length": "3.1.0", - "strip-ansi": "5.2.0" + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.1", + "jest-regex-util": "^24.9.0", + "jest-watcher": "^24.3.0", + "slash": "^3.0.0", + "string-length": "^3.1.0", + "strip-ansi": "^5.0.0" }, "dependencies": { "slash": { @@ -7815,8 +8986,8 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-3.1.0.tgz", "integrity": "sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA==", "requires": { - "astral-regex": "1.0.0", - "strip-ansi": "5.2.0" + "astral-regex": "^1.0.0", + "strip-ansi": "^5.2.0" } } } @@ -7826,13 +8997,13 @@ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.9.0.tgz", "integrity": "sha512-+/fLOfKPXXYJDYlks62/4R4GoT+GU1tYZed99JSCOsmzkkF7727RqKrjNAxtfO4YpGv11wybgRvCjR73lK2GZw==", "requires": { - "@jest/test-result": "24.9.0", - "@jest/types": "24.9.0", - "@types/yargs": "13.0.8", - "ansi-escapes": "3.2.0", - "chalk": "2.4.2", - "jest-util": "24.9.0", - "string-length": "2.0.0" + "@jest/test-result": "^24.9.0", + "@jest/types": "^24.9.0", + "@types/yargs": "^13.0.0", + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.1", + "jest-util": "^24.9.0", + "string-length": "^2.0.0" }, "dependencies": { "ansi-escapes": { @@ -7847,8 +9018,8 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", "requires": { - "merge-stream": "2.0.0", - "supports-color": "6.1.0" + "merge-stream": "^2.0.0", + "supports-color": "^6.1.0" }, "dependencies": { "supports-color": { @@ -7856,7 +9027,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -7871,8 +9042,8 @@ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", "requires": { - "argparse": "1.0.10", - "esprima": "4.0.1" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, "jsbn": { @@ -7885,32 +9056,32 @@ "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", "requires": { - "abab": "2.0.3", - "acorn": "5.7.4", - "acorn-globals": "4.3.4", - "array-equal": "1.0.0", - "cssom": "0.3.8", - "cssstyle": "1.4.0", - "data-urls": "1.1.0", - "domexception": "1.0.1", - "escodegen": "1.14.1", - "html-encoding-sniffer": "1.0.2", - "left-pad": "1.3.0", - "nwsapi": "2.2.0", + "abab": "^2.0.0", + "acorn": "^5.5.3", + "acorn-globals": "^4.1.0", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.2 < 0.4.0", + "cssstyle": "^1.0.0", + "data-urls": "^1.0.0", + "domexception": "^1.0.1", + "escodegen": "^1.9.1", + "html-encoding-sniffer": "^1.0.2", + "left-pad": "^1.3.0", + "nwsapi": "^2.0.7", "parse5": "4.0.0", - "pn": "1.1.0", - "request": "2.88.2", - "request-promise-native": "1.0.8", - "sax": "1.2.4", - "symbol-tree": "3.2.4", - "tough-cookie": "2.5.0", - "w3c-hr-time": "1.0.2", - "webidl-conversions": "4.0.2", - "whatwg-encoding": "1.0.5", - "whatwg-mimetype": "2.3.0", - "whatwg-url": "6.5.0", - "ws": "5.2.2", - "xml-name-validator": "3.0.0" + "pn": "^1.1.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.5", + "sax": "^1.2.4", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.3.4", + "w3c-hr-time": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.3", + "whatwg-mimetype": "^2.1.0", + "whatwg-url": "^6.4.1", + "ws": "^5.2.0", + "xml-name-validator": "^3.0.0" }, "dependencies": { "acorn": { @@ -7925,6 +9096,12 @@ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", + "dev": true + }, "json-parse-better-errors": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", @@ -7945,7 +9122,7 @@ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", "requires": { - "jsonify": "0.0.0" + "jsonify": "~0.0.0" } }, "json-stable-stringify-without-jsonify": { @@ -7968,7 +9145,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.5" } }, "jsonfile": { @@ -7976,7 +9153,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "requires": { - "graceful-fs": "4.2.3" + "graceful-fs": "^4.1.6" } }, "jsonify": { @@ -8000,8 +9177,17 @@ "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz", "integrity": "sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA==", "requires": { - "array-includes": "3.1.1", - "object.assign": "4.1.0" + "array-includes": "^3.0.3", + "object.assign": "^4.1.0" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "dev": true, + "requires": { + "json-buffer": "3.0.0" } }, "killable": { @@ -8014,7 +9200,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.1.5" } }, "kleur": { @@ -8027,8 +9213,17 @@ "resolved": "https://registry.npmjs.org/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz", "integrity": "sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w==", "requires": { - "lodash": "4.17.15", - "webpack-sources": "1.4.3" + "lodash": "^4.17.5", + "webpack-sources": "^1.1.0" + } + }, + "latest-version": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", + "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "dev": true, + "requires": { + "package-json": "^6.3.0" } }, "lazy-cache": { @@ -8036,12 +9231,18 @@ "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" }, + "lazy-val": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-val/-/lazy-val-1.0.4.tgz", + "integrity": "sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q==", + "dev": true + }, "lcid": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", "requires": { - "invert-kv": "2.0.0" + "invert-kv": "^2.0.0" } }, "left-pad": { @@ -8059,7 +9260,7 @@ "resolved": "https://registry.npmjs.org/levenary/-/levenary-1.1.1.tgz", "integrity": "sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ==", "requires": { - "leven": "3.1.0" + "leven": "^3.1.0" } }, "levn": { @@ -8067,8 +9268,8 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", "requires": { - "prelude-ls": "1.1.2", - "type-check": "0.3.2" + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" } }, "lines-and-columns": { @@ -8081,10 +9282,10 @@ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", "integrity": "sha1-L19Fq5HjMhYjT9U62rZo607AmTs=", "requires": { - "graceful-fs": "4.2.3", - "parse-json": "4.0.0", - "pify": "3.0.0", - "strip-bom": "3.0.0" + "graceful-fs": "^4.1.2", + "parse-json": "^4.0.0", + "pify": "^3.0.0", + "strip-bom": "^3.0.0" } }, "loader-fs-cache": { @@ -8092,8 +9293,8 @@ "resolved": "https://registry.npmjs.org/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz", "integrity": "sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA==", "requires": { - "find-cache-dir": "0.1.1", - "mkdirp": "0.5.4" + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" }, "dependencies": { "find-cache-dir": { @@ -8101,9 +9302,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-0.1.1.tgz", "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", "requires": { - "commondir": "1.0.1", - "mkdirp": "0.5.4", - "pkg-dir": "1.0.0" + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" } }, "find-up": { @@ -8111,8 +9312,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", "requires": { - "path-exists": "2.1.0", - "pinkie-promise": "2.0.1" + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, "path-exists": { @@ -8120,7 +9321,7 @@ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", "requires": { - "pinkie-promise": "2.0.1" + "pinkie-promise": "^2.0.0" } }, "pkg-dir": { @@ -8128,7 +9329,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-1.0.0.tgz", "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", "requires": { - "find-up": "1.1.2" + "find-up": "^1.0.0" } } } @@ -8143,9 +9344,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.4.0.tgz", "integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==", "requires": { - "big.js": "5.2.2", - "emojis-list": "3.0.0", - "json5": "1.0.1" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" }, "dependencies": { "json5": { @@ -8153,7 +9354,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.0" } } } @@ -8163,8 +9364,8 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", "requires": { - "p-locate": "3.0.0", - "path-exists": "3.0.0" + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" } }, "lodash": { @@ -8197,8 +9398,8 @@ "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz", "integrity": "sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A==", "requires": { - "lodash._reinterpolate": "3.0.0", - "lodash.templatesettings": "4.2.0" + "lodash._reinterpolate": "^3.0.0", + "lodash.templatesettings": "^4.0.0" } }, "lodash.templatesettings": { @@ -8206,7 +9407,7 @@ "resolved": "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz", "integrity": "sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ==", "requires": { - "lodash._reinterpolate": "3.0.0" + "lodash._reinterpolate": "^3.0.0" } }, "lodash.uniq": { @@ -8224,7 +9425,7 @@ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "requires": { - "js-tokens": "4.0.0" + "js-tokens": "^3.0.0 || ^4.0.0" } }, "lower-case": { @@ -8232,15 +9433,21 @@ "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.1.tgz", "integrity": "sha512-LiWgfDLLb1dwbFQZsSglpRj+1ctGnayXz3Uv0/WO8n558JycT5fg6zkNcnW0G68Nn0aEldTFeEfmjCfmqry/rQ==", "requires": { - "tslib": "1.11.1" + "tslib": "^1.10.0" } }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "dev": true + }, "lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "requires": { - "yallist": "3.1.1" + "yallist": "^3.0.2" }, "dependencies": { "yallist": { @@ -8255,8 +9462,8 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", "requires": { - "pify": "4.0.1", - "semver": "5.7.1" + "pify": "^4.0.1", + "semver": "^5.6.0" }, "dependencies": { "pify": { @@ -8276,7 +9483,7 @@ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", "requires": { - "tmpl": "1.0.4" + "tmpl": "1.0.x" } }, "mamacro": { @@ -8289,7 +9496,7 @@ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", "requires": { - "p-defer": "1.0.0" + "p-defer": "^1.0.0" } }, "map-cache": { @@ -8302,7 +9509,26 @@ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", "requires": { - "object-visit": "1.0.1" + "object-visit": "^1.0.0" + } + }, + "matcher": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz", + "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==", + "dev": true, + "optional": true, + "requires": { + "escape-string-regexp": "^2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "dev": true, + "optional": true + } } }, "md5.js": { @@ -8310,9 +9536,9 @@ "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "mdn-data": { @@ -8330,9 +9556,9 @@ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", "requires": { - "map-age-cleaner": "0.1.3", - "mimic-fn": "2.1.0", - "p-is-promise": "2.1.0" + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" } }, "memory-fs": { @@ -8340,8 +9566,8 @@ "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", "requires": { - "errno": "0.1.7", - "readable-stream": "2.3.7" + "errno": "^0.1.3", + "readable-stream": "^2.0.1" }, "dependencies": { "readable-stream": { @@ -8349,13 +9575,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -8363,7 +9589,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -8373,9 +9599,9 @@ "resolved": "https://registry.npmjs.org/merge-deep/-/merge-deep-3.0.2.tgz", "integrity": "sha512-T7qC8kg4Zoti1cFd8Cr0M+qaZfOwjlPDEdZIIPPB2JZctjaPM4fX+i7HOId69tAti2fvO6X5ldfYUONDODsrkA==", "requires": { - "arr-union": "3.1.0", - "clone-deep": "0.2.4", - "kind-of": "3.2.2" + "arr-union": "^3.1.0", + "clone-deep": "^0.2.4", + "kind-of": "^3.0.2" } }, "merge-descriptors": { @@ -8408,19 +9634,19 @@ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "braces": "2.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "extglob": "2.0.4", - "fragment-cache": "0.2.1", - "kind-of": "6.0.3", - "nanomatch": "1.2.13", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" }, "dependencies": { "kind-of": { @@ -8435,8 +9661,8 @@ "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", "requires": { - "bn.js": "4.11.8", - "brorand": "1.1.0" + "bn.js": "^4.0.0", + "brorand": "^1.0.1" } }, "mime": { @@ -8462,6 +9688,12 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "dev": true + }, "min-indent": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.0.tgz", @@ -8472,9 +9704,9 @@ "resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.3.2.tgz", "integrity": "sha512-2v+OeetEyliMt5VHMXsBhABoJ0/M4RCe7fatd/fBy6SMiKazUSEt3gxxypfnk2SHMkdBYvorHRoQxuGoiwbzAw==", "requires": { - "@babel/runtime": "7.9.2", - "gud": "1.0.0", - "tiny-warning": "1.0.3" + "@babel/runtime": "^7.4.0", + "gud": "^1.0.0", + "tiny-warning": "^1.0.2" } }, "mini-css-extract-plugin": { @@ -8482,10 +9714,10 @@ "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz", "integrity": "sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A==", "requires": { - "loader-utils": "1.4.0", + "loader-utils": "^1.1.0", "normalize-url": "1.9.1", - "schema-utils": "1.0.0", - "webpack-sources": "1.4.3" + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" }, "dependencies": { "schema-utils": { @@ -8493,9 +9725,9 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "requires": { - "ajv": "6.12.0", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.4.1" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } } } @@ -8515,7 +9747,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { @@ -8528,7 +9760,7 @@ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.1.tgz", "integrity": "sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w==", "requires": { - "yallist": "4.0.0" + "yallist": "^4.0.0" } }, "minipass-collect": { @@ -8536,7 +9768,7 @@ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minipass-flush": { @@ -8544,7 +9776,7 @@ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "minipass-pipeline": { @@ -8552,7 +9784,7 @@ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz", "integrity": "sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA==", "requires": { - "minipass": "3.1.1" + "minipass": "^3.0.0" } }, "mississippi": { @@ -8560,16 +9792,16 @@ "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", "requires": { - "concat-stream": "1.6.2", - "duplexify": "3.7.1", - "end-of-stream": "1.4.4", - "flush-write-stream": "1.1.1", - "from2": "2.3.0", - "parallel-transform": "1.2.0", - "pump": "3.0.0", - "pumpify": "1.5.1", - "stream-each": "1.2.3", - "through2": "2.0.5" + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" } }, "mixin-deep": { @@ -8577,8 +9809,8 @@ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", "requires": { - "for-in": "1.0.2", - "is-extendable": "1.0.1" + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" }, "dependencies": { "is-extendable": { @@ -8586,7 +9818,7 @@ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", "requires": { - "is-plain-object": "2.0.4" + "is-plain-object": "^2.0.4" } } } @@ -8596,8 +9828,8 @@ "resolved": "https://registry.npmjs.org/mixin-object/-/mixin-object-2.0.1.tgz", "integrity": "sha1-T7lJRB2rGCVA8f4DW6YOGUel5X4=", "requires": { - "for-in": "0.1.8", - "is-extendable": "0.1.1" + "for-in": "^0.1.3", + "is-extendable": "^0.1.1" }, "dependencies": { "for-in": { @@ -8612,7 +9844,7 @@ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.4.tgz", "integrity": "sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw==", "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.5" } }, "move-concurrently": { @@ -8620,12 +9852,12 @@ "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", "requires": { - "aproba": "1.2.0", - "copy-concurrently": "1.0.5", - "fs-write-stream-atomic": "1.0.10", - "mkdirp": "0.5.4", - "rimraf": "2.6.3", - "run-queue": "1.0.3" + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" } }, "ms": { @@ -8638,8 +9870,8 @@ "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", "requires": { - "dns-packet": "1.3.1", - "thunky": "1.1.0" + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" } }, "multicast-dns-service-types": { @@ -8663,17 +9895,17 @@ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", "requires": { - "arr-diff": "4.0.0", - "array-unique": "0.3.2", - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "fragment-cache": "0.2.1", - "is-windows": "1.0.2", - "kind-of": "6.0.3", - "object.pick": "1.3.0", - "regex-not": "1.0.2", - "snapdragon": "0.8.2", - "to-regex": "3.0.2" + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" }, "dependencies": { "kind-of": { @@ -8713,8 +9945,8 @@ "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.3.tgz", "integrity": "sha512-ehY/mVQCf9BL0gKfsJBvFJen+1V//U+0HQMPrWct40ixE4jnv0bfvxDbWtAHL9EcaPEOJHVVYKoQn1TlZUB8Tw==", "requires": { - "lower-case": "2.0.1", - "tslib": "1.11.1" + "lower-case": "^2.0.1", + "tslib": "^1.10.0" } }, "node-forge": { @@ -8732,29 +9964,29 @@ "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", "requires": { - "assert": "1.4.1", - "browserify-zlib": "0.2.0", - "buffer": "4.9.2", - "console-browserify": "1.2.0", - "constants-browserify": "1.0.0", - "crypto-browserify": "3.12.0", - "domain-browser": "1.2.0", - "events": "3.1.0", - "https-browserify": "1.0.0", - "os-browserify": "0.3.0", + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", "path-browserify": "0.0.1", - "process": "0.11.10", - "punycode": "1.4.1", - "querystring-es3": "0.2.1", - "readable-stream": "2.3.7", - "stream-browserify": "2.0.2", - "stream-http": "2.8.3", - "string_decoder": "1.3.0", - "timers-browserify": "2.0.11", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", "tty-browserify": "0.0.0", - "url": "0.11.0", - "util": "0.11.1", - "vm-browserify": "1.1.2" + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" }, "dependencies": { "punycode": { @@ -8767,13 +9999,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" }, "dependencies": { "string_decoder": { @@ -8781,7 +10013,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -8813,11 +10045,11 @@ "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.3.tgz", "integrity": "sha512-M4UBGcs4jeOK9CjTsYwkvH6/MzuUmGCyTW+kCY7uO+1ZVr0+FHGdPdIf5CCLqAaxnRrWidyoQlNkMIIVwbKB8Q==", "requires": { - "growly": "1.3.0", - "is-wsl": "1.1.0", - "semver": "5.7.1", - "shellwords": "0.1.1", - "which": "1.3.1" + "growly": "^1.3.0", + "is-wsl": "^1.1.0", + "semver": "^5.5.0", + "shellwords": "^0.1.1", + "which": "^1.3.0" }, "dependencies": { "semver": { @@ -8832,7 +10064,7 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.52.tgz", "integrity": "sha512-snSiT1UypkgGt2wxPqS6ImEUICbNCMb31yaxWrOLXjhlt2z2/IBpaOxzONExqSm4y5oLnAqjjRWu+wsDzK5yNQ==", "requires": { - "semver": "6.3.0" + "semver": "^6.3.0" } }, "normalize-package-data": { @@ -8840,10 +10072,10 @@ "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", "requires": { - "hosted-git-info": "2.8.8", - "resolve": "1.15.0", - "semver": "5.7.1", - "validate-npm-package-license": "3.0.4" + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" }, "dependencies": { "semver": { @@ -8858,7 +10090,7 @@ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "requires": { - "remove-trailing-separator": "1.1.0" + "remove-trailing-separator": "^1.0.1" } }, "normalize-range": { @@ -8871,10 +10103,21 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", "requires": { - "object-assign": "4.1.1", - "prepend-http": "1.0.4", - "query-string": "4.3.4", - "sort-keys": "1.1.2" + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "dev": true, + "optional": true, + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" } }, "npm-run-path": { @@ -8882,7 +10125,7 @@ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", "requires": { - "path-key": "2.0.1" + "path-key": "^2.0.0" } }, "nth-check": { @@ -8890,7 +10133,7 @@ "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", "requires": { - "boolbase": "1.0.0" + "boolbase": "~1.0.0" } }, "num2fraction": { @@ -8923,9 +10166,9 @@ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", "requires": { - "copy-descriptor": "0.1.1", - "define-property": "0.2.5", - "kind-of": "3.2.2" + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" }, "dependencies": { "define-property": { @@ -8933,7 +10176,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -8968,7 +10211,7 @@ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.0" } }, "object.assign": { @@ -8976,10 +10219,10 @@ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz", "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==", "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1", - "has-symbols": "1.0.1", - "object-keys": "1.1.1" + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" } }, "object.entries": { @@ -8987,10 +10230,10 @@ "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.1.tgz", "integrity": "sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.5", - "function-bind": "1.1.1", - "has": "1.0.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" } }, "object.fromentries": { @@ -8998,10 +10241,10 @@ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.2.tgz", "integrity": "sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.5", - "function-bind": "1.1.1", - "has": "1.0.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" } }, "object.getownpropertydescriptors": { @@ -9009,8 +10252,8 @@ "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz", "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.5" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "object.pick": { @@ -9018,7 +10261,7 @@ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", "requires": { - "isobject": "3.0.1" + "isobject": "^3.0.1" } }, "object.values": { @@ -9026,10 +10269,10 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.1.tgz", "integrity": "sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.5", - "function-bind": "1.1.1", - "has": "1.0.3" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" } }, "obuf": { @@ -9055,7 +10298,7 @@ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "onetime": { @@ -9063,7 +10306,7 @@ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", "requires": { - "mimic-fn": "2.1.0" + "mimic-fn": "^2.1.0" } }, "open": { @@ -9071,8 +10314,8 @@ "resolved": "https://registry.npmjs.org/open/-/open-7.0.3.tgz", "integrity": "sha512-sP2ru2v0P290WFfv49Ap8MF6PkzGNnGlAwHweB4WR4mr5d2d0woiCluUeJ218w7/+PmoBy9JmYgD5A4mLcWOFA==", "requires": { - "is-docker": "2.0.0", - "is-wsl": "2.1.1" + "is-docker": "^2.0.0", + "is-wsl": "^2.1.1" }, "dependencies": { "is-wsl": { @@ -9087,7 +10330,7 @@ "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", "requires": { - "is-wsl": "1.1.0" + "is-wsl": "^1.1.0" } }, "optimize-css-assets-webpack-plugin": { @@ -9095,8 +10338,8 @@ "resolved": "https://registry.npmjs.org/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz", "integrity": "sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA==", "requires": { - "cssnano": "4.1.10", - "last-call-webpack-plugin": "3.0.0" + "cssnano": "^4.1.10", + "last-call-webpack-plugin": "^3.0.0" } }, "optionator": { @@ -9104,12 +10347,12 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", "requires": { - "deep-is": "0.1.3", - "fast-levenshtein": "2.0.6", - "levn": "0.3.0", - "prelude-ls": "1.1.2", - "type-check": "0.3.2", - "word-wrap": "1.2.3" + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" } }, "original": { @@ -9117,7 +10360,7 @@ "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", "requires": { - "url-parse": "1.4.7" + "url-parse": "^1.4.3" } }, "os-browserify": { @@ -9130,9 +10373,9 @@ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", "requires": { - "execa": "1.0.0", - "lcid": "2.0.0", - "mem": "4.3.0" + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" } }, "os-tmpdir": { @@ -9140,6 +10383,12 @@ "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "dev": true + }, "p-defer": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", @@ -9150,7 +10399,7 @@ "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", "requires": { - "p-reduce": "1.0.0" + "p-reduce": "^1.0.0" } }, "p-finally": { @@ -9168,7 +10417,7 @@ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz", "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==", "requires": { - "p-try": "2.2.0" + "p-try": "^2.0.0" } }, "p-locate": { @@ -9176,7 +10425,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", "requires": { - "p-limit": "2.2.2" + "p-limit": "^2.0.0" } }, "p-map": { @@ -9184,7 +10433,7 @@ "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", "requires": { - "aggregate-error": "3.0.1" + "aggregate-error": "^3.0.0" } }, "p-reduce": { @@ -9197,7 +10446,7 @@ "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", "requires": { - "retry": "0.12.0" + "retry": "^0.12.0" } }, "p-try": { @@ -9205,6 +10454,18 @@ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==" }, + "package-json": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", + "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "dev": true, + "requires": { + "got": "^9.6.0", + "registry-auth-token": "^4.0.0", + "registry-url": "^5.0.0", + "semver": "^6.2.0" + } + }, "pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", @@ -9215,9 +10476,9 @@ "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", "requires": { - "cyclist": "1.0.1", - "inherits": "2.0.4", - "readable-stream": "2.3.7" + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" }, "dependencies": { "readable-stream": { @@ -9225,13 +10486,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -9239,7 +10500,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -9249,8 +10510,8 @@ "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.3.tgz", "integrity": "sha512-VWBVyimc1+QrzappRs7waeN2YmoZFCGXWASRYX1/rGHtXqEcrGEIDm+jqIwFa2fRXNgQEwrxaYuIrX0WcAguTA==", "requires": { - "dot-case": "3.0.3", - "tslib": "1.11.1" + "dot-case": "^3.0.3", + "tslib": "^1.10.0" } }, "parent-module": { @@ -9258,7 +10519,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "requires": { - "callsites": "3.1.0" + "callsites": "^3.0.0" }, "dependencies": { "callsites": { @@ -9273,12 +10534,12 @@ "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.5.tgz", "integrity": "sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ==", "requires": { - "asn1.js": "4.10.1", - "browserify-aes": "1.2.0", - "create-hash": "1.2.0", - "evp_bytestokey": "1.0.3", - "pbkdf2": "3.0.17", - "safe-buffer": "5.1.2" + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-json": { @@ -9286,8 +10547,8 @@ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", "requires": { - "error-ex": "1.3.2", - "json-parse-better-errors": "1.0.2" + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" } }, "parse5": { @@ -9305,8 +10566,8 @@ "resolved": "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.1.tgz", "integrity": "sha512-XIeHKqIrsquVTQL2crjq3NfJUxmdLasn3TYOU0VBM+UX2a6ztAWBlJQBePLGY7VHW8+2dRadeIPK5+KImwTxQA==", "requires": { - "no-case": "3.0.3", - "tslib": "1.11.1" + "no-case": "^3.0.3", + "tslib": "^1.10.0" } }, "pascalcase": { @@ -9359,7 +10620,7 @@ "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", "requires": { - "pify": "3.0.0" + "pify": "^3.0.0" } }, "pbkdf2": { @@ -9367,13 +10628,19 @@ "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", "requires": { - "create-hash": "1.2.0", - "create-hmac": "1.1.7", - "ripemd160": "2.0.2", - "safe-buffer": "5.1.2", - "sha.js": "2.4.11" + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" } }, + "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", @@ -9399,7 +10666,7 @@ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "requires": { - "pinkie": "2.0.4" + "pinkie": "^2.0.0" } }, "pirates": { @@ -9407,7 +10674,7 @@ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", "requires": { - "node-modules-regexp": "1.0.0" + "node-modules-regexp": "^1.0.0" } }, "pkg-dir": { @@ -9415,7 +10682,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", "requires": { - "find-up": "3.0.0" + "find-up": "^3.0.0" } }, "pkg-up": { @@ -9423,7 +10690,7 @@ "resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz", "integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==", "requires": { - "find-up": "3.0.0" + "find-up": "^3.0.0" } }, "pn": { @@ -9436,7 +10703,7 @@ "resolved": "https://registry.npmjs.org/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz", "integrity": "sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg==", "requires": { - "ts-pnp": "1.1.6" + "ts-pnp": "^1.1.6" } }, "portfinder": { @@ -9444,9 +10711,9 @@ "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.25.tgz", "integrity": "sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg==", "requires": { - "async": "2.6.3", - "debug": "3.2.6", - "mkdirp": "0.5.4" + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" }, "dependencies": { "debug": { @@ -9454,7 +10721,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } } } @@ -9469,9 +10736,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.27.tgz", "integrity": "sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" }, "dependencies": { "source-map": { @@ -9484,7 +10751,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } @@ -9494,8 +10761,8 @@ "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz", "integrity": "sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA==", "requires": { - "postcss": "7.0.27", - "postcss-selector-parser": "6.0.2" + "postcss": "^7.0.2", + "postcss-selector-parser": "^6.0.2" } }, "postcss-browser-comments": { @@ -9503,7 +10770,7 @@ "resolved": "https://registry.npmjs.org/postcss-browser-comments/-/postcss-browser-comments-3.0.0.tgz", "integrity": "sha512-qfVjLfq7HFd2e0HW4s1dvU8X080OZdG46fFbIBFjW7US7YPDcWfRvdElvwMJr2LI6hMmD+7LnH2HcmXTs+uOig==", "requires": { - "postcss": "7.0.27" + "postcss": "^7" } }, "postcss-calc": { @@ -9511,9 +10778,9 @@ "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.2.tgz", "integrity": "sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ==", "requires": { - "postcss": "7.0.27", - "postcss-selector-parser": "6.0.2", - "postcss-value-parser": "4.0.3" + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" } }, "postcss-color-functional-notation": { @@ -9521,8 +10788,8 @@ "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz", "integrity": "sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g==", "requires": { - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" } }, "postcss-color-gray": { @@ -9530,9 +10797,9 @@ "resolved": "https://registry.npmjs.org/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz", "integrity": "sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw==", "requires": { - "@csstools/convert-colors": "1.4.0", - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" } }, "postcss-color-hex-alpha": { @@ -9540,8 +10807,8 @@ "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz", "integrity": "sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw==", "requires": { - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.14", + "postcss-values-parser": "^2.0.1" } }, "postcss-color-mod-function": { @@ -9549,9 +10816,9 @@ "resolved": "https://registry.npmjs.org/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz", "integrity": "sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ==", "requires": { - "@csstools/convert-colors": "1.4.0", - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" } }, "postcss-color-rebeccapurple": { @@ -9559,8 +10826,8 @@ "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz", "integrity": "sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g==", "requires": { - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" } }, "postcss-colormin": { @@ -9568,11 +10835,11 @@ "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", "requires": { - "browserslist": "4.11.0", - "color": "3.1.2", - "has": "1.0.3", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -9587,8 +10854,8 @@ "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", "requires": { - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -9603,7 +10870,7 @@ "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz", "integrity": "sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.14" } }, "postcss-custom-properties": { @@ -9611,8 +10878,8 @@ "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz", "integrity": "sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA==", "requires": { - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.17", + "postcss-values-parser": "^2.0.1" } }, "postcss-custom-selectors": { @@ -9620,8 +10887,8 @@ "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz", "integrity": "sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w==", "requires": { - "postcss": "7.0.27", - "postcss-selector-parser": "5.0.0" + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { "cssesc": { @@ -9634,9 +10901,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "requires": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } @@ -9646,8 +10913,8 @@ "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz", "integrity": "sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw==", "requires": { - "postcss": "7.0.27", - "postcss-selector-parser": "5.0.0" + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { "cssesc": { @@ -9660,9 +10927,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "requires": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } @@ -9672,7 +10939,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.0" } }, "postcss-discard-duplicates": { @@ -9680,7 +10947,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.0" } }, "postcss-discard-empty": { @@ -9688,7 +10955,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.0" } }, "postcss-discard-overridden": { @@ -9696,7 +10963,7 @@ "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.0" } }, "postcss-double-position-gradients": { @@ -9704,8 +10971,8 @@ "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz", "integrity": "sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA==", "requires": { - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.5", + "postcss-values-parser": "^2.0.0" } }, "postcss-env-function": { @@ -9713,8 +10980,8 @@ "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-2.0.2.tgz", "integrity": "sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw==", "requires": { - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" } }, "postcss-flexbugs-fixes": { @@ -9722,7 +10989,7 @@ "resolved": "https://registry.npmjs.org/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz", "integrity": "sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.0" } }, "postcss-focus-visible": { @@ -9730,7 +10997,7 @@ "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz", "integrity": "sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-focus-within": { @@ -9738,7 +11005,7 @@ "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz", "integrity": "sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-font-variant": { @@ -9746,7 +11013,7 @@ "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz", "integrity": "sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-gap-properties": { @@ -9754,7 +11021,7 @@ "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz", "integrity": "sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-image-set-function": { @@ -9762,8 +11029,8 @@ "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz", "integrity": "sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw==", "requires": { - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" } }, "postcss-initial": { @@ -9771,8 +11038,8 @@ "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-3.0.2.tgz", "integrity": "sha512-ugA2wKonC0xeNHgirR4D3VWHs2JcU08WAi1KFLVcnb7IN89phID6Qtg2RIctWbnvp1TM2BOmDtX8GGLCKdR8YA==", "requires": { - "lodash.template": "4.5.0", - "postcss": "7.0.27" + "lodash.template": "^4.5.0", + "postcss": "^7.0.2" } }, "postcss-lab-function": { @@ -9780,9 +11047,9 @@ "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz", "integrity": "sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg==", "requires": { - "@csstools/convert-colors": "1.4.0", - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "@csstools/convert-colors": "^1.4.0", + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" } }, "postcss-load-config": { @@ -9790,8 +11057,8 @@ "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.0.tgz", "integrity": "sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q==", "requires": { - "cosmiconfig": "5.2.1", - "import-cwd": "2.1.0" + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" } }, "postcss-loader": { @@ -9799,10 +11066,10 @@ "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", "requires": { - "loader-utils": "1.4.0", - "postcss": "7.0.27", - "postcss-load-config": "2.1.0", - "schema-utils": "1.0.0" + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" }, "dependencies": { "schema-utils": { @@ -9810,9 +11077,9 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "requires": { - "ajv": "6.12.0", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.4.1" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } } } @@ -9822,7 +11089,7 @@ "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-3.0.0.tgz", "integrity": "sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-media-minmax": { @@ -9830,7 +11097,7 @@ "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz", "integrity": "sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-merge-longhand": { @@ -9839,9 +11106,9 @@ "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", "requires": { "css-color-names": "0.0.4", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1", - "stylehacks": "4.0.3" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" }, "dependencies": { "postcss-value-parser": { @@ -9856,12 +11123,12 @@ "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", "requires": { - "browserslist": "4.11.0", - "caniuse-api": "3.0.0", - "cssnano-util-same-parent": "4.0.1", - "postcss": "7.0.27", - "postcss-selector-parser": "3.1.2", - "vendors": "1.0.4" + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" }, "dependencies": { "postcss-selector-parser": { @@ -9869,9 +11136,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", "requires": { - "dot-prop": "5.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } @@ -9881,8 +11148,8 @@ "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", "requires": { - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -9897,10 +11164,10 @@ "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", "requires": { - "cssnano-util-get-arguments": "4.0.0", - "is-color-stop": "1.1.0", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -9915,12 +11182,12 @@ "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", "requires": { - "alphanum-sort": "1.0.2", - "browserslist": "4.11.0", - "cssnano-util-get-arguments": "4.0.0", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" }, "dependencies": { "postcss-value-parser": { @@ -9935,10 +11202,10 @@ "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", "requires": { - "alphanum-sort": "1.0.2", - "has": "1.0.3", - "postcss": "7.0.27", - "postcss-selector-parser": "3.1.2" + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" }, "dependencies": { "postcss-selector-parser": { @@ -9946,9 +11213,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", "requires": { - "dot-prop": "5.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } @@ -9958,7 +11225,7 @@ "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz", "integrity": "sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.5" } }, "postcss-modules-local-by-default": { @@ -9966,10 +11233,10 @@ "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz", "integrity": "sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ==", "requires": { - "icss-utils": "4.1.1", - "postcss": "7.0.27", - "postcss-selector-parser": "6.0.2", - "postcss-value-parser": "4.0.3" + "icss-utils": "^4.1.1", + "postcss": "^7.0.16", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.0" } }, "postcss-modules-scope": { @@ -9977,8 +11244,8 @@ "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz", "integrity": "sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==", "requires": { - "postcss": "7.0.27", - "postcss-selector-parser": "6.0.2" + "postcss": "^7.0.6", + "postcss-selector-parser": "^6.0.0" } }, "postcss-modules-values": { @@ -9986,8 +11253,8 @@ "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz", "integrity": "sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==", "requires": { - "icss-utils": "4.1.1", - "postcss": "7.0.27" + "icss-utils": "^4.0.0", + "postcss": "^7.0.6" } }, "postcss-nesting": { @@ -9995,7 +11262,7 @@ "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-7.0.1.tgz", "integrity": "sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-normalize": { @@ -10003,11 +11270,11 @@ "resolved": "https://registry.npmjs.org/postcss-normalize/-/postcss-normalize-8.0.1.tgz", "integrity": "sha512-rt9JMS/m9FHIRroDDBGSMsyW1c0fkvOJPy62ggxSHUldJO7B195TqFMqIf+lY5ezpDcYOV4j86aUp3/XbxzCCQ==", "requires": { - "@csstools/normalize.css": "10.1.0", - "browserslist": "4.11.0", - "postcss": "7.0.27", - "postcss-browser-comments": "3.0.0", - "sanitize.css": "10.0.0" + "@csstools/normalize.css": "^10.1.0", + "browserslist": "^4.6.2", + "postcss": "^7.0.17", + "postcss-browser-comments": "^3.0.0", + "sanitize.css": "^10.0.0" } }, "postcss-normalize-charset": { @@ -10015,7 +11282,7 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.0" } }, "postcss-normalize-display-values": { @@ -10023,9 +11290,9 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", "requires": { - "cssnano-util-get-match": "4.0.0", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10040,10 +11307,10 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", "requires": { - "cssnano-util-get-arguments": "4.0.0", - "has": "1.0.3", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10058,10 +11325,10 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", "requires": { - "cssnano-util-get-arguments": "4.0.0", - "cssnano-util-get-match": "4.0.0", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10076,9 +11343,9 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", "requires": { - "has": "1.0.3", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10093,9 +11360,9 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", "requires": { - "cssnano-util-get-match": "4.0.0", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10110,9 +11377,9 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", "requires": { - "browserslist": "4.11.0", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10127,10 +11394,10 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", "requires": { - "is-absolute-url": "2.1.0", - "normalize-url": "3.3.0", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "normalize-url": { @@ -10150,8 +11417,8 @@ "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", "requires": { - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10166,9 +11433,9 @@ "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", "requires": { - "cssnano-util-get-arguments": "4.0.0", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10183,7 +11450,7 @@ "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz", "integrity": "sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-page-break": { @@ -10191,7 +11458,7 @@ "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-2.0.0.tgz", "integrity": "sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-place": { @@ -10199,8 +11466,8 @@ "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-4.0.1.tgz", "integrity": "sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg==", "requires": { - "postcss": "7.0.27", - "postcss-values-parser": "2.0.1" + "postcss": "^7.0.2", + "postcss-values-parser": "^2.0.0" } }, "postcss-preset-env": { @@ -10208,43 +11475,43 @@ "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz", "integrity": "sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg==", "requires": { - "autoprefixer": "9.7.4", - "browserslist": "4.11.0", - "caniuse-lite": "1.0.30001036", - "css-blank-pseudo": "0.1.4", - "css-has-pseudo": "0.10.0", - "css-prefers-color-scheme": "3.1.1", - "cssdb": "4.4.0", - "postcss": "7.0.27", - "postcss-attribute-case-insensitive": "4.0.2", - "postcss-color-functional-notation": "2.0.1", - "postcss-color-gray": "5.0.0", - "postcss-color-hex-alpha": "5.0.3", - "postcss-color-mod-function": "3.0.3", - "postcss-color-rebeccapurple": "4.0.1", - "postcss-custom-media": "7.0.8", - "postcss-custom-properties": "8.0.11", - "postcss-custom-selectors": "5.1.2", - "postcss-dir-pseudo-class": "5.0.0", - "postcss-double-position-gradients": "1.0.0", - "postcss-env-function": "2.0.2", - "postcss-focus-visible": "4.0.0", - "postcss-focus-within": "3.0.0", - "postcss-font-variant": "4.0.0", - "postcss-gap-properties": "2.0.0", - "postcss-image-set-function": "3.0.1", - "postcss-initial": "3.0.2", - "postcss-lab-function": "2.0.1", - "postcss-logical": "3.0.0", - "postcss-media-minmax": "4.0.0", - "postcss-nesting": "7.0.1", - "postcss-overflow-shorthand": "2.0.0", - "postcss-page-break": "2.0.0", - "postcss-place": "4.0.1", - "postcss-pseudo-class-any-link": "6.0.0", - "postcss-replace-overflow-wrap": "3.0.0", - "postcss-selector-matches": "4.0.0", - "postcss-selector-not": "4.0.0" + "autoprefixer": "^9.6.1", + "browserslist": "^4.6.4", + "caniuse-lite": "^1.0.30000981", + "css-blank-pseudo": "^0.1.4", + "css-has-pseudo": "^0.10.0", + "css-prefers-color-scheme": "^3.1.1", + "cssdb": "^4.4.0", + "postcss": "^7.0.17", + "postcss-attribute-case-insensitive": "^4.0.1", + "postcss-color-functional-notation": "^2.0.1", + "postcss-color-gray": "^5.0.0", + "postcss-color-hex-alpha": "^5.0.3", + "postcss-color-mod-function": "^3.0.3", + "postcss-color-rebeccapurple": "^4.0.1", + "postcss-custom-media": "^7.0.8", + "postcss-custom-properties": "^8.0.11", + "postcss-custom-selectors": "^5.1.2", + "postcss-dir-pseudo-class": "^5.0.0", + "postcss-double-position-gradients": "^1.0.0", + "postcss-env-function": "^2.0.2", + "postcss-focus-visible": "^4.0.0", + "postcss-focus-within": "^3.0.0", + "postcss-font-variant": "^4.0.0", + "postcss-gap-properties": "^2.0.0", + "postcss-image-set-function": "^3.0.1", + "postcss-initial": "^3.0.0", + "postcss-lab-function": "^2.0.1", + "postcss-logical": "^3.0.0", + "postcss-media-minmax": "^4.0.0", + "postcss-nesting": "^7.0.0", + "postcss-overflow-shorthand": "^2.0.0", + "postcss-page-break": "^2.0.0", + "postcss-place": "^4.0.1", + "postcss-pseudo-class-any-link": "^6.0.0", + "postcss-replace-overflow-wrap": "^3.0.0", + "postcss-selector-matches": "^4.0.0", + "postcss-selector-not": "^4.0.0" } }, "postcss-pseudo-class-any-link": { @@ -10252,8 +11519,8 @@ "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz", "integrity": "sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew==", "requires": { - "postcss": "7.0.27", - "postcss-selector-parser": "5.0.0" + "postcss": "^7.0.2", + "postcss-selector-parser": "^5.0.0-rc.3" }, "dependencies": { "cssesc": { @@ -10266,9 +11533,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz", "integrity": "sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ==", "requires": { - "cssesc": "2.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "cssesc": "^2.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } @@ -10278,10 +11545,10 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", "requires": { - "browserslist": "4.11.0", - "caniuse-api": "3.0.0", - "has": "1.0.3", - "postcss": "7.0.27" + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" } }, "postcss-reduce-transforms": { @@ -10289,10 +11556,10 @@ "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", "requires": { - "cssnano-util-get-match": "4.0.0", - "has": "1.0.3", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1" + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10307,7 +11574,7 @@ "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz", "integrity": "sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.2" } }, "postcss-safe-parser": { @@ -10315,7 +11582,7 @@ "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz", "integrity": "sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ==", "requires": { - "postcss": "7.0.27" + "postcss": "^7.0.0" } }, "postcss-selector-matches": { @@ -10323,8 +11590,8 @@ "resolved": "https://registry.npmjs.org/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz", "integrity": "sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww==", "requires": { - "balanced-match": "1.0.0", - "postcss": "7.0.27" + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" } }, "postcss-selector-not": { @@ -10332,8 +11599,8 @@ "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz", "integrity": "sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ==", "requires": { - "balanced-match": "1.0.0", - "postcss": "7.0.27" + "balanced-match": "^1.0.0", + "postcss": "^7.0.2" } }, "postcss-selector-parser": { @@ -10341,9 +11608,9 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz", "integrity": "sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==", "requires": { - "cssesc": "3.0.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "postcss-svgo": { @@ -10351,10 +11618,10 @@ "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", "requires": { - "is-svg": "3.0.0", - "postcss": "7.0.27", - "postcss-value-parser": "3.3.1", - "svgo": "1.3.2" + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" }, "dependencies": { "postcss-value-parser": { @@ -10369,9 +11636,9 @@ "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", "requires": { - "alphanum-sort": "1.0.2", - "postcss": "7.0.27", - "uniqs": "2.0.0" + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" } }, "postcss-value-parser": { @@ -10384,9 +11651,9 @@ "resolved": "https://registry.npmjs.org/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz", "integrity": "sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg==", "requires": { - "flatten": "1.0.3", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "flatten": "^1.0.2", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } }, "prelude-ls": { @@ -10409,8 +11676,8 @@ "resolved": "https://registry.npmjs.org/pretty-error/-/pretty-error-2.1.1.tgz", "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", "requires": { - "renderkid": "2.0.3", - "utila": "0.4.0" + "renderkid": "^2.0.1", + "utila": "~0.4" } }, "pretty-format": { @@ -10418,10 +11685,10 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.9.0.tgz", "integrity": "sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA==", "requires": { - "@jest/types": "24.9.0", - "ansi-regex": "4.1.0", - "ansi-styles": "3.2.1", - "react-is": "16.13.1" + "@jest/types": "^24.9.0", + "ansi-regex": "^4.0.0", + "ansi-styles": "^3.2.0", + "react-is": "^16.8.4" }, "dependencies": { "ansi-regex": { @@ -10456,7 +11723,7 @@ "resolved": "https://registry.npmjs.org/promise/-/promise-8.1.0.tgz", "integrity": "sha512-W04AqnILOL/sPRXziNicCjSNRruLAuIHEOVBazepu0545DDNGYHz7ar9ZgZ1fMU8/MA4mVxp5rkBWRi6OXIy3Q==", "requires": { - "asap": "2.0.6" + "asap": "~2.0.6" } }, "promise-inflight": { @@ -10469,8 +11736,8 @@ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.3.2.tgz", "integrity": "sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA==", "requires": { - "kleur": "3.0.3", - "sisteransi": "1.0.5" + "kleur": "^3.0.3", + "sisteransi": "^1.0.4" } }, "prop-types": { @@ -10478,9 +11745,9 @@ "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz", "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "react-is": "16.13.1" + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.8.1" } }, "prop-types-extra": { @@ -10488,16 +11755,23 @@ "resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz", "integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==", "requires": { - "react-is": "16.13.1", - "warning": "4.0.3" + "react-is": "^16.3.2", + "warning": "^4.0.0" } }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true, + "optional": true + }, "proxy-addr": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", "requires": { - "forwarded": "0.1.2", + "forwarded": "~0.1.2", "ipaddr.js": "1.9.1" } }, @@ -10516,12 +11790,12 @@ "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", "requires": { - "bn.js": "4.11.8", - "browserify-rsa": "4.0.1", - "create-hash": "1.2.0", - "parse-asn1": "5.1.5", - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" } }, "pump": { @@ -10529,8 +11803,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "requires": { - "end-of-stream": "1.4.4", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } }, "pumpify": { @@ -10538,9 +11812,9 @@ "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", "requires": { - "duplexify": "3.7.1", - "inherits": "2.0.4", - "pump": "2.0.1" + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" }, "dependencies": { "pump": { @@ -10548,8 +11822,8 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", "requires": { - "end-of-stream": "1.4.4", - "once": "1.4.0" + "end-of-stream": "^1.1.0", + "once": "^1.3.1" } } } @@ -10559,6 +11833,15 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, + "pupa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", + "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, "q": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", @@ -10574,8 +11857,8 @@ "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", "requires": { - "object-assign": "4.1.1", - "strict-uri-encode": "1.1.0" + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" } }, "querystring": { @@ -10598,7 +11881,7 @@ "resolved": "https://registry.npmjs.org/raf/-/raf-3.4.1.tgz", "integrity": "sha512-Sq4CW4QhwOHE8ucn6J34MqtZCeWFP2aQSmrlroYgqAV1PjStIhJXxYuTgUIfkEk7zTLjmIjLmU5q+fbD1NnOJA==", "requires": { - "performance-now": "2.1.0" + "performance-now": "^2.1.0" } }, "randombytes": { @@ -10606,7 +11889,7 @@ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.1.0" } }, "randomfill": { @@ -10614,8 +11897,8 @@ "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", "requires": { - "randombytes": "2.1.0", - "safe-buffer": "5.1.2" + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" } }, "range-parser": { @@ -10641,14 +11924,34 @@ } } }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + }, + "dependencies": { + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + } + } + }, "react": { "version": "16.13.1", "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz", "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2" } }, "react-app-polyfill": { @@ -10656,32 +11959,32 @@ "resolved": "https://registry.npmjs.org/react-app-polyfill/-/react-app-polyfill-1.0.6.tgz", "integrity": "sha512-OfBnObtnGgLGfweORmdZbyEz+3dgVePQBb3zipiaDsMHV1NpWm0rDFYIVXFV/AK+x4VIIfWHhrdMIeoTLyRr2g==", "requires": { - "core-js": "3.6.4", - "object-assign": "4.1.1", - "promise": "8.1.0", - "raf": "3.4.1", - "regenerator-runtime": "0.13.5", - "whatwg-fetch": "3.0.0" + "core-js": "^3.5.0", + "object-assign": "^4.1.1", + "promise": "^8.0.3", + "raf": "^3.4.1", + "regenerator-runtime": "^0.13.3", + "whatwg-fetch": "^3.0.0" } }, "react-bootstrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.0.0.tgz", - "integrity": "sha512-Ep6ZNH6wL5m9bytOS6T9mjSz0YE1bEkc+uHItvenRcA3amr5ApkpKYzAWgdglhRPZHPvm+pnqs1z5IPwv/2UZw==", - "requires": { - "@babel/runtime": "7.9.2", - "@restart/context": "2.1.4", - "@restart/hooks": "0.3.22", - "@types/react": "16.9.25", - "classnames": "2.2.6", - "dom-helpers": "5.1.4", - "invariant": "2.2.4", - "prop-types": "15.7.2", - "prop-types-extra": "1.1.1", - "react-overlays": "3.0.1", - "react-transition-group": "4.3.0", - "uncontrollable": "7.1.1", - "warning": "4.0.3" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.0.1.tgz", + "integrity": "sha512-xMHwsvDN7sIv26P9wWiosWjITZije2dRCjEJHVfV2KFoSJY+8uv2zttEw0XMB7xviQcW3zuIGLJXuj8vf6lYEg==", + "requires": { + "@babel/runtime": "^7.4.2", + "@restart/context": "^2.1.4", + "@restart/hooks": "^0.3.21", + "@types/react": "^16.9.23", + "classnames": "^2.2.6", + "dom-helpers": "^5.1.2", + "invariant": "^2.2.4", + "prop-types": "^15.7.2", + "prop-types-extra": "^1.1.0", + "react-overlays": "^3.1.2", + "react-transition-group": "^4.0.0", + "uncontrollable": "^7.0.0", + "warning": "^4.0.3" } }, "react-dev-utils": { @@ -10706,9 +12009,9 @@ "inquirer": "7.0.4", "is-root": "2.1.0", "loader-utils": "1.2.3", - "open": "7.0.3", + "open": "^7.0.2", "pkg-up": "3.1.0", - "react-error-overlay": "6.0.7", + "react-error-overlay": "^6.0.7", "recursive-readdir": "2.2.2", "shell-quote": "1.7.2", "strip-ansi": "6.0.0", @@ -10725,10 +12028,10 @@ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.10.0.tgz", "integrity": "sha512-TpfK0TDgv71dzuTsEAlQiHeWQ/tiPqgNZVdv046fvNtBZrjbv2O3TsWCDU0AWGJJKCF/KsjNdLzR9hXOsh/CfA==", "requires": { - "caniuse-lite": "1.0.30001036", - "electron-to-chromium": "1.3.381", - "node-releases": "1.1.52", - "pkg-up": "3.1.0" + "caniuse-lite": "^1.0.30001035", + "electron-to-chromium": "^1.3.378", + "node-releases": "^1.1.52", + "pkg-up": "^3.1.0" } }, "cross-spawn": { @@ -10736,9 +12039,9 @@ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", "requires": { - "path-key": "3.1.1", - "shebang-command": "2.0.0", - "which": "2.0.2" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" } }, "emojis-list": { @@ -10756,8 +12059,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "inquirer": { @@ -10765,19 +12068,19 @@ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.4.tgz", "integrity": "sha512-Bu5Td5+j11sCkqfqmUTiwv+tWisMtP0L7Q8WrqA2C/BbBhy1YTdFrvjjlrKq8oagA/tLQBski2Gcx/Sqyi2qSQ==", "requires": { - "ansi-escapes": "4.3.1", - "chalk": "2.4.2", - "cli-cursor": "3.1.0", - "cli-width": "2.2.0", - "external-editor": "3.1.0", - "figures": "3.2.0", - "lodash": "4.17.15", + "ansi-escapes": "^4.2.1", + "chalk": "^2.4.2", + "cli-cursor": "^3.1.0", + "cli-width": "^2.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.15", "mute-stream": "0.0.8", - "run-async": "2.4.0", - "rxjs": "6.5.4", - "string-width": "4.2.0", - "strip-ansi": "5.2.0", - "through": "2.3.8" + "run-async": "^2.2.0", + "rxjs": "^6.5.3", + "string-width": "^4.1.0", + "strip-ansi": "^5.1.0", + "through": "^2.3.6" }, "dependencies": { "strip-ansi": { @@ -10785,7 +12088,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" } } } @@ -10795,7 +12098,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.0" } }, "loader-utils": { @@ -10803,9 +12106,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "requires": { - "big.js": "5.2.2", - "emojis-list": "2.1.0", - "json5": "1.0.1" + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" } }, "locate-path": { @@ -10813,7 +12116,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "4.1.0" + "p-locate": "^4.1.0" } }, "p-locate": { @@ -10821,7 +12124,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "2.2.2" + "p-limit": "^2.2.0" } }, "path-exists": { @@ -10839,7 +12142,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "requires": { - "shebang-regex": "3.0.0" + "shebang-regex": "^3.0.0" } }, "shebang-regex": { @@ -10852,7 +12155,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" }, "dependencies": { "ansi-regex": { @@ -10867,7 +12170,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } } } @@ -10877,10 +12180,10 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-16.13.1.tgz", "integrity": "sha512-81PIMmVLnCNLO/fFOQxdQkvEq/+Hfpv24XNJfpyZhTRfO0QcmQIF/PgCa1zCOj2w1hrn12MFLyaJ/G0+Mxtfag==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1", - "prop-types": "15.7.2", - "scheduler": "0.19.1" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1", + "prop-types": "^15.6.2", + "scheduler": "^0.19.1" } }, "react-error-overlay": { @@ -10899,17 +12202,18 @@ "integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==" }, "react-overlays": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-3.0.1.tgz", - "integrity": "sha512-QEt6I3Cjy06pe2FwY/tuWaXEzSVOuXfP8zsC6oWHJhMYpEJQgZV/TCwbCw5slMW6VcgwcWPc4HrBzN0yfxf5Xw==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-3.1.3.tgz", + "integrity": "sha512-FH82W0R9lFJm/YCTDeSvEKQxXyTaZmjMEQlAjRhgjQhknTkyMsft+X4Wep5l95QveqdxGVxl/P41WUOzTGJUcw==", "requires": { - "@babel/runtime": "7.9.2", - "@popperjs/core": "2.2.3", - "@restart/hooks": "0.3.22", - "dom-helpers": "5.1.4", - "prop-types": "15.7.2", - "uncontrollable": "7.1.1", - "warning": "4.0.3" + "@babel/runtime": "^7.4.5", + "@popperjs/core": "^2.0.0", + "@restart/hooks": "^0.3.12", + "@types/warning": "^3.0.0", + "dom-helpers": "^5.1.0", + "prop-types": "^15.7.2", + "uncontrollable": "^7.0.0", + "warning": "^4.0.3" } }, "react-router": { @@ -10917,16 +12221,16 @@ "resolved": "https://registry.npmjs.org/react-router/-/react-router-5.1.2.tgz", "integrity": "sha512-yjEuMFy1ONK246B+rsa0cUam5OeAQ8pyclRDgpxuSCrAlJ1qN9uZ5IgyKC7gQg0w8OM50NXHEegPh/ks9YuR2A==", "requires": { - "@babel/runtime": "7.9.2", - "history": "4.10.1", - "hoist-non-react-statics": "3.3.2", - "loose-envify": "1.4.0", - "mini-create-react-context": "0.3.2", - "path-to-regexp": "1.8.0", - "prop-types": "15.7.2", - "react-is": "16.13.1", - "tiny-invariant": "1.1.0", - "tiny-warning": "1.0.3" + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "hoist-non-react-statics": "^3.1.0", + "loose-envify": "^1.3.1", + "mini-create-react-context": "^0.3.0", + "path-to-regexp": "^1.7.0", + "prop-types": "^15.6.2", + "react-is": "^16.6.0", + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" }, "dependencies": { "isarray": { @@ -10949,13 +12253,13 @@ "resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.1.2.tgz", "integrity": "sha512-7BPHAaIwWpZS074UKaw1FjVdZBSVWEk8IuDXdB+OkLb8vd/WRQIpA4ag9WQk61aEfQs47wHyjWUoUGGZxpQXew==", "requires": { - "@babel/runtime": "7.9.2", - "history": "4.10.1", - "loose-envify": "1.4.0", - "prop-types": "15.7.2", + "@babel/runtime": "^7.1.2", + "history": "^4.9.0", + "loose-envify": "^1.3.1", + "prop-types": "^15.6.2", "react-router": "5.1.2", - "tiny-invariant": "1.1.0", - "tiny-warning": "1.0.3" + "tiny-invariant": "^1.0.2", + "tiny-warning": "^1.0.0" } }, "react-scripts": { @@ -10965,28 +12269,28 @@ "requires": { "@babel/core": "7.9.0", "@svgr/webpack": "4.3.3", - "@typescript-eslint/eslint-plugin": "2.25.0", - "@typescript-eslint/parser": "2.25.0", + "@typescript-eslint/eslint-plugin": "^2.10.0", + "@typescript-eslint/parser": "^2.10.0", "babel-eslint": "10.1.0", - "babel-jest": "24.9.0", + "babel-jest": "^24.9.0", "babel-loader": "8.1.0", - "babel-plugin-named-asset-import": "0.3.6", - "babel-preset-react-app": "9.1.2", - "camelcase": "5.3.1", + "babel-plugin-named-asset-import": "^0.3.6", + "babel-preset-react-app": "^9.1.2", + "camelcase": "^5.3.1", "case-sensitive-paths-webpack-plugin": "2.3.0", "css-loader": "3.4.2", "dotenv": "8.2.0", "dotenv-expand": "5.1.0", - "eslint": "6.8.0", - "eslint-config-react-app": "5.2.1", + "eslint": "^6.6.0", + "eslint-config-react-app": "^5.2.1", "eslint-loader": "3.0.3", "eslint-plugin-flowtype": "4.6.0", "eslint-plugin-import": "2.20.1", "eslint-plugin-jsx-a11y": "6.2.3", "eslint-plugin-react": "7.19.0", - "eslint-plugin-react-hooks": "1.7.0", + "eslint-plugin-react-hooks": "^1.6.1", "file-loader": "4.3.0", - "fs-extra": "8.1.0", + "fs-extra": "^8.1.0", "fsevents": "2.1.2", "html-webpack-plugin": "4.0.0-beta.11", "identity-obj-proxy": "3.0.0", @@ -11002,8 +12306,8 @@ "postcss-normalize": "8.0.1", "postcss-preset-env": "6.7.0", "postcss-safe-parser": "4.0.1", - "react-app-polyfill": "1.0.6", - "react-dev-utils": "10.2.1", + "react-app-polyfill": "^1.0.6", + "react-dev-utils": "^10.2.1", "resolve": "1.15.0", "resolve-url-loader": "3.1.1", "sass-loader": "8.0.2", @@ -11019,14 +12323,27 @@ } }, "react-transition-group": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.3.0.tgz", - "integrity": "sha512-1qRV1ZuVSdxPlPf4O8t7inxUGpdyO5zG9IoNfJxSO0ImU2A1YWkEQvFPuIPZmMLkg5hYs7vv5mMOyfgSkvAwvw==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz", + "integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==", + "requires": { + "@babel/runtime": "^7.5.5", + "dom-helpers": "^5.0.1", + "loose-envify": "^1.4.0", + "prop-types": "^15.6.2" + } + }, + "read-config-file": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-6.0.0.tgz", + "integrity": "sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA==", + "dev": true, "requires": { - "@babel/runtime": "7.9.2", - "dom-helpers": "5.1.4", - "loose-envify": "1.4.0", - "prop-types": "15.7.2" + "dotenv": "^8.2.0", + "dotenv-expand": "^5.1.0", + "js-yaml": "^3.13.1", + "json5": "^2.1.2", + "lazy-val": "^1.0.4" } }, "read-pkg": { @@ -11034,9 +12351,9 @@ "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", "requires": { - "load-json-file": "4.0.0", - "normalize-package-data": "2.5.0", - "path-type": "3.0.0" + "load-json-file": "^4.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^3.0.0" } }, "read-pkg-up": { @@ -11044,8 +12361,8 @@ "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", "requires": { - "find-up": "3.0.0", - "read-pkg": "3.0.0" + "find-up": "^3.0.0", + "read-pkg": "^3.0.0" } }, "readable-stream": { @@ -11053,9 +12370,9 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "requires": { - "inherits": "2.0.4", - "string_decoder": "1.3.0", - "util-deprecate": "1.0.2" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, "readdirp": { @@ -11063,7 +12380,7 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz", "integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==", "requires": { - "picomatch": "2.2.2" + "picomatch": "^2.0.7" } }, "realpath-native": { @@ -11071,7 +12388,7 @@ "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", "requires": { - "util.promisify": "1.0.1" + "util.promisify": "^1.0.0" } }, "recursive-readdir": { @@ -11087,8 +12404,8 @@ "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", "requires": { - "indent-string": "4.0.0", - "strip-indent": "3.0.0" + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" } }, "regenerate": { @@ -11101,7 +12418,7 @@ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", "requires": { - "regenerate": "1.4.0" + "regenerate": "^1.4.0" } }, "regenerator-runtime": { @@ -11114,8 +12431,8 @@ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.4.tgz", "integrity": "sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw==", "requires": { - "@babel/runtime": "7.9.2", - "private": "0.1.8" + "@babel/runtime": "^7.8.4", + "private": "^0.1.8" } }, "regex-not": { @@ -11123,8 +12440,8 @@ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", "requires": { - "extend-shallow": "3.0.2", - "safe-regex": "1.1.0" + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" } }, "regex-parser": { @@ -11137,8 +12454,8 @@ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz", "integrity": "sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.5" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" } }, "regexpp": { @@ -11151,12 +12468,30 @@ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", "integrity": "sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ==", "requires": { - "regenerate": "1.4.0", - "regenerate-unicode-properties": "8.2.0", - "regjsgen": "0.5.1", - "regjsparser": "0.6.4", - "unicode-match-property-ecmascript": "1.0.4", - "unicode-match-property-value-ecmascript": "1.2.0" + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "registry-auth-token": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", + "dev": true, + "requires": { + "rc": "^1.2.8" + } + }, + "registry-url": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", + "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "dev": true, + "requires": { + "rc": "^1.2.8" } }, "regjsgen": { @@ -11169,7 +12504,7 @@ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", "requires": { - "jsesc": "0.5.0" + "jsesc": "~0.5.0" }, "dependencies": { "jsesc": { @@ -11194,11 +12529,11 @@ "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-2.0.3.tgz", "integrity": "sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA==", "requires": { - "css-select": "1.2.0", - "dom-converter": "0.2.0", - "htmlparser2": "3.10.1", - "strip-ansi": "3.0.1", - "utila": "0.4.0" + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" }, "dependencies": { "ansi-regex": { @@ -11211,10 +12546,10 @@ "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz", "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", "requires": { - "boolbase": "1.0.0", - "css-what": "2.1.3", + "boolbase": "~1.0.0", + "css-what": "2.1", "domutils": "1.5.1", - "nth-check": "1.0.2" + "nth-check": "~1.0.1" } }, "css-what": { @@ -11227,8 +12562,8 @@ "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz", "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", "requires": { - "dom-serializer": "0.2.2", - "domelementtype": "1.3.1" + "dom-serializer": "0", + "domelementtype": "1" } }, "strip-ansi": { @@ -11236,7 +12571,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } } } @@ -11256,26 +12591,26 @@ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "requires": { - "aws-sign2": "0.7.0", - "aws4": "1.9.1", - "caseless": "0.12.0", - "combined-stream": "1.0.8", - "extend": "3.0.2", - "forever-agent": "0.6.1", - "form-data": "2.3.3", - "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.26", - "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.4.0" + "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" } }, "request-promise-core": { @@ -11283,7 +12618,7 @@ "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.3.tgz", "integrity": "sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ==", "requires": { - "lodash": "4.17.15" + "lodash": "^4.17.15" } }, "request-promise-native": { @@ -11292,8 +12627,8 @@ "integrity": "sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ==", "requires": { "request-promise-core": "1.1.3", - "stealthy-require": "1.1.1", - "tough-cookie": "2.5.0" + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" } }, "require-directory": { @@ -11316,7 +12651,7 @@ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.15.0.tgz", "integrity": "sha512-+hTmAldEGE80U2wJJDC1lebb5jWqvTYAfm3YZ1ckk1gBr0MnCqUKlwK1e+anaFljIl+F5tR5IoZcm4ZDA1zMQw==", "requires": { - "path-parse": "1.0.6" + "path-parse": "^1.0.6" } }, "resolve-cwd": { @@ -11324,7 +12659,7 @@ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", "requires": { - "resolve-from": "3.0.0" + "resolve-from": "^3.0.0" } }, "resolve-from": { @@ -11369,7 +12704,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.0" } }, "loader-utils": { @@ -11377,9 +12712,9 @@ "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", "requires": { - "big.js": "5.2.2", - "emojis-list": "2.1.0", - "json5": "1.0.1" + "big.js": "^5.2.2", + "emojis-list": "^2.0.0", + "json5": "^1.0.1" } }, "postcss": { @@ -11387,9 +12722,9 @@ "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", "requires": { - "chalk": "2.4.2", - "source-map": "0.6.1", - "supports-color": "6.1.0" + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" } }, "source-map": { @@ -11402,18 +12737,27 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } } } }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "dev": true, + "requires": { + "lowercase-keys": "^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==", "requires": { - "onetime": "5.1.0", - "signal-exit": "3.0.2" + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" } }, "ret": { @@ -11431,8 +12775,8 @@ "resolved": "https://registry.npmjs.org/rework/-/rework-1.0.1.tgz", "integrity": "sha1-MIBqhBNCtUUQqkEQhQzUhTQUSqc=", "requires": { - "convert-source-map": "0.3.5", - "css": "2.2.4" + "convert-source-map": "^0.3.3", + "css": "^2.0.0" }, "dependencies": { "convert-source-map": { @@ -11462,7 +12806,7 @@ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "requires": { - "glob": "7.1.6" + "glob": "^7.1.3" } }, "ripemd160": { @@ -11470,8 +12814,32 @@ "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", "requires": { - "hash-base": "3.0.4", - "inherits": "2.0.4" + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "roarr": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", + "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", + "dev": true, + "optional": true, + "requires": { + "boolean": "^3.0.0", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + }, + "dependencies": { + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true, + "optional": true + } } }, "rsvp": { @@ -11484,7 +12852,7 @@ "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz", "integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==", "requires": { - "is-promise": "2.1.0" + "is-promise": "^2.1.0" } }, "run-queue": { @@ -11492,7 +12860,7 @@ "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", "requires": { - "aproba": "1.2.0" + "aproba": "^1.1.1" } }, "rxjs": { @@ -11500,7 +12868,7 @@ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.4.tgz", "integrity": "sha512-naMQXcgEo3csAEGvw/NydRA0fuS2nDZJiw1YUWFKU7aPPAPGZEsD4Iimit96qwCieH6y614MCLYwdkrWx7z/7Q==", "requires": { - "tslib": "1.11.1" + "tslib": "^1.9.0" } }, "safe-buffer": { @@ -11513,7 +12881,7 @@ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", "requires": { - "ret": "0.1.15" + "ret": "~0.1.10" } }, "safer-buffer": { @@ -11526,15 +12894,24 @@ "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", "requires": { - "@cnakazawa/watch": "1.0.4", - "anymatch": "2.0.0", - "capture-exit": "2.0.0", - "exec-sh": "0.3.4", - "execa": "1.0.0", - "fb-watchman": "2.0.1", - "micromatch": "3.1.10", - "minimist": "1.2.5", - "walker": "1.0.7" + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + } + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "dev": true, + "requires": { + "truncate-utf8-bytes": "^1.0.0" } }, "sanitize.css": { @@ -11547,11 +12924,11 @@ "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.2.tgz", "integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==", "requires": { - "clone-deep": "4.0.1", - "loader-utils": "1.4.0", - "neo-async": "2.6.1", - "schema-utils": "2.6.5", - "semver": "6.3.0" + "clone-deep": "^4.0.1", + "loader-utils": "^1.2.3", + "neo-async": "^2.6.1", + "schema-utils": "^2.6.1", + "semver": "^6.3.0" }, "dependencies": { "clone-deep": { @@ -11559,9 +12936,9 @@ "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "requires": { - "is-plain-object": "2.0.4", - "kind-of": "6.0.3", - "shallow-clone": "3.0.1" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" } }, "kind-of": { @@ -11574,7 +12951,7 @@ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.2" } } } @@ -11589,7 +12966,7 @@ "resolved": "https://registry.npmjs.org/saxes/-/saxes-3.1.11.tgz", "integrity": "sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g==", "requires": { - "xmlchars": "2.2.0" + "xmlchars": "^2.1.1" } }, "scheduler": { @@ -11597,8 +12974,8 @@ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz", "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==", "requires": { - "loose-envify": "1.4.0", - "object-assign": "4.1.1" + "loose-envify": "^1.1.0", + "object-assign": "^4.1.1" } }, "schema-utils": { @@ -11606,8 +12983,8 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.5.tgz", "integrity": "sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ==", "requires": { - "ajv": "6.12.0", - "ajv-keywords": "3.4.1" + "ajv": "^6.12.0", + "ajv-keywords": "^3.4.1" } }, "select-hose": { @@ -11628,24 +13005,40 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=", + "dev": true, + "optional": true + }, + "semver-diff": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "dev": true, + "requires": { + "semver": "^6.3.0" + } + }, "send": { "version": "0.17.1", "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", "requires": { "debug": "2.6.9", - "depd": "1.1.2", - "destroy": "1.0.4", - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "etag": "1.8.1", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "1.7.2", + "http-errors": "~1.7.2", "mime": "1.6.0", "ms": "2.1.1", - "on-finished": "2.3.0", - "range-parser": "1.2.1", - "statuses": "1.5.0" + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" }, "dependencies": { "debug": { @@ -11675,6 +13068,16 @@ } } }, + "serialize-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", + "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", + "dev": true, + "optional": true, + "requires": { + "type-fest": "^0.8.0" + } + }, "serialize-javascript": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", @@ -11685,13 +13088,13 @@ "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", "requires": { - "accepts": "1.3.7", + "accepts": "~1.3.4", "batch": "0.6.1", "debug": "2.6.9", - "escape-html": "1.0.3", - "http-errors": "1.6.3", - "mime-types": "2.1.26", - "parseurl": "1.3.3" + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { "debug": { @@ -11707,10 +13110,10 @@ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { - "depd": "1.1.2", + "depd": "~1.1.2", "inherits": "2.0.3", "setprototypeof": "1.1.0", - "statuses": "1.5.0" + "statuses": ">= 1.4.0 < 2" } }, "inherits": { @@ -11735,9 +13138,9 @@ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", "requires": { - "encodeurl": "1.0.2", - "escape-html": "1.0.3", - "parseurl": "1.3.3", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", "send": "0.17.1" } }, @@ -11751,10 +13154,10 @@ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", "requires": { - "extend-shallow": "2.0.1", - "is-extendable": "0.1.1", - "is-plain-object": "2.0.4", - "split-string": "3.1.0" + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" }, "dependencies": { "extend-shallow": { @@ -11762,7 +13165,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } } } @@ -11782,8 +13185,8 @@ "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { - "inherits": "2.0.4", - "safe-buffer": "5.1.2" + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" } }, "shallow-clone": { @@ -11791,10 +13194,10 @@ "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-0.1.2.tgz", "integrity": "sha1-WQnodLp3EG1zrEFM/sH/yofZcGA=", "requires": { - "is-extendable": "0.1.1", - "kind-of": "2.0.1", - "lazy-cache": "0.2.7", - "mixin-object": "2.0.1" + "is-extendable": "^0.1.1", + "kind-of": "^2.0.1", + "lazy-cache": "^0.2.3", + "mixin-object": "^2.0.1" }, "dependencies": { "kind-of": { @@ -11802,7 +13205,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-2.0.1.tgz", "integrity": "sha1-AY7HpM5+OobLkUG+UZ0kyPqpgbU=", "requires": { - "is-buffer": "1.1.6" + "is-buffer": "^1.0.2" } }, "lazy-cache": { @@ -11817,7 +13220,7 @@ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", "requires": { - "shebang-regex": "1.0.0" + "shebang-regex": "^1.0.0" } }, "shebang-regex": { @@ -11840,8 +13243,8 @@ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.2.tgz", "integrity": "sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA==", "requires": { - "es-abstract": "1.17.5", - "object-inspect": "1.7.0" + "es-abstract": "^1.17.0-next.1", + "object-inspect": "^1.7.0" } }, "signal-exit": { @@ -11854,7 +13257,7 @@ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", "requires": { - "is-arrayish": "0.3.2" + "is-arrayish": "^0.3.1" }, "dependencies": { "is-arrayish": { @@ -11879,9 +13282,9 @@ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", "requires": { - "ansi-styles": "3.2.1", - "astral-regex": "1.0.0", - "is-fullwidth-code-point": "2.0.0" + "ansi-styles": "^3.2.0", + "astral-regex": "^1.0.0", + "is-fullwidth-code-point": "^2.0.0" }, "dependencies": { "is-fullwidth-code-point": { @@ -11896,14 +13299,14 @@ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", "requires": { - "base": "0.11.2", - "debug": "2.6.9", - "define-property": "0.2.5", - "extend-shallow": "2.0.1", - "map-cache": "0.2.2", - "source-map": "0.5.7", - "source-map-resolve": "0.5.3", - "use": "3.1.1" + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" }, "dependencies": { "debug": { @@ -11919,7 +13322,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } }, "extend-shallow": { @@ -11927,7 +13330,7 @@ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", "requires": { - "is-extendable": "0.1.1" + "is-extendable": "^0.1.0" } }, "ms": { @@ -11942,9 +13345,9 @@ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", "requires": { - "define-property": "1.0.0", - "isobject": "3.0.1", - "snapdragon-util": "3.0.1" + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" }, "dependencies": { "define-property": { @@ -11952,7 +13355,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", "requires": { - "is-descriptor": "1.0.2" + "is-descriptor": "^1.0.0" } }, "is-accessor-descriptor": { @@ -11960,7 +13363,7 @@ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-data-descriptor": { @@ -11968,7 +13371,7 @@ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", "requires": { - "kind-of": "6.0.3" + "kind-of": "^6.0.0" } }, "is-descriptor": { @@ -11976,9 +13379,9 @@ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", "requires": { - "is-accessor-descriptor": "1.0.0", - "is-data-descriptor": "1.0.0", - "kind-of": "6.0.3" + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" } }, "kind-of": { @@ -11993,7 +13396,7 @@ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.2.0" } }, "sockjs": { @@ -12001,8 +13404,8 @@ "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", "requires": { - "faye-websocket": "0.10.0", - "uuid": "3.4.0" + "faye-websocket": "^0.10.0", + "uuid": "^3.0.1" } }, "sockjs-client": { @@ -12010,12 +13413,12 @@ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", "requires": { - "debug": "3.2.6", - "eventsource": "1.0.7", - "faye-websocket": "0.11.3", - "inherits": "2.0.4", - "json3": "3.3.3", - "url-parse": "1.4.7" + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" }, "dependencies": { "debug": { @@ -12023,7 +13426,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "faye-websocket": { @@ -12031,7 +13434,7 @@ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", "requires": { - "websocket-driver": "0.7.3" + "websocket-driver": ">=0.5.1" } } } @@ -12041,7 +13444,7 @@ "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", "requires": { - "is-plain-obj": "1.1.0" + "is-plain-obj": "^1.0.0" } }, "source-list-map": { @@ -12059,11 +13462,11 @@ "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", "requires": { - "atob": "2.1.2", - "decode-uri-component": "0.2.0", - "resolve-url": "0.2.1", - "source-map-url": "0.4.0", - "urix": "0.1.0" + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" } }, "source-map-support": { @@ -12071,8 +13474,8 @@ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "requires": { - "buffer-from": "1.1.1", - "source-map": "0.6.1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { "source-map": { @@ -12092,8 +13495,8 @@ "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz", "integrity": "sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q==", "requires": { - "spdx-expression-parse": "3.0.0", - "spdx-license-ids": "3.0.5" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-exceptions": { @@ -12106,8 +13509,8 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz", "integrity": "sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg==", "requires": { - "spdx-exceptions": "2.2.0", - "spdx-license-ids": "3.0.5" + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, "spdx-license-ids": { @@ -12120,11 +13523,11 @@ "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.1.tgz", "integrity": "sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA==", "requires": { - "debug": "4.1.1", - "handle-thing": "2.0.0", - "http-deceiver": "1.2.7", - "select-hose": "2.0.0", - "spdy-transport": "3.0.0" + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" } }, "spdy-transport": { @@ -12132,12 +13535,12 @@ "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "requires": { - "debug": "4.1.1", - "detect-node": "2.0.4", - "hpack.js": "2.1.6", - "obuf": "1.1.2", - "readable-stream": "3.6.0", - "wbuf": "1.7.3" + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" } }, "split-string": { @@ -12145,7 +13548,7 @@ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", "requires": { - "extend-shallow": "3.0.2" + "extend-shallow": "^3.0.0" } }, "sprintf-js": { @@ -12158,15 +13561,15 @@ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "requires": { - "asn1": "0.2.4", - "assert-plus": "1.0.0", - "bcrypt-pbkdf": "1.0.2", - "dashdash": "1.14.1", - "ecc-jsbn": "0.1.2", - "getpass": "0.1.7", - "jsbn": "0.1.1", - "safer-buffer": "2.1.2", - "tweetnacl": "0.14.5" + "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" } }, "ssri": { @@ -12174,8 +13577,8 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", "requires": { - "figgy-pudding": "3.5.1", - "minipass": "3.1.1" + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" } }, "stable": { @@ -12188,13 +13591,19 @@ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==" }, + "stat-mode": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", + "dev": true + }, "static-extend": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", "requires": { - "define-property": "0.2.5", - "object-copy": "0.1.0" + "define-property": "^0.2.5", + "object-copy": "^0.1.0" }, "dependencies": { "define-property": { @@ -12202,7 +13611,7 @@ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", "requires": { - "is-descriptor": "0.1.6" + "is-descriptor": "^0.1.0" } } } @@ -12222,8 +13631,8 @@ "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", "requires": { - "inherits": "2.0.4", - "readable-stream": "2.3.7" + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" }, "dependencies": { "readable-stream": { @@ -12231,13 +13640,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -12245,7 +13654,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -12255,8 +13664,8 @@ "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", "requires": { - "end-of-stream": "1.4.4", - "stream-shift": "1.0.1" + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" } }, "stream-http": { @@ -12264,11 +13673,11 @@ "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", "requires": { - "builtin-status-codes": "3.0.0", - "inherits": "2.0.4", - "readable-stream": "2.3.7", - "to-arraybuffer": "1.0.1", - "xtend": "4.0.2" + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" }, "dependencies": { "readable-stream": { @@ -12276,13 +13685,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -12290,7 +13699,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -12310,8 +13719,8 @@ "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", "requires": { - "astral-regex": "1.0.0", - "strip-ansi": "4.0.0" + "astral-regex": "^1.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -12324,7 +13733,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -12334,9 +13743,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "requires": { - "emoji-regex": "8.0.0", - "is-fullwidth-code-point": "3.0.0", - "strip-ansi": "6.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "strip-ansi": { @@ -12344,7 +13753,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "requires": { - "ansi-regex": "5.0.0" + "ansi-regex": "^5.0.0" } } } @@ -12354,12 +13763,12 @@ "resolved": "https://registry.npmjs.org/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz", "integrity": "sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.5", - "has-symbols": "1.0.1", - "internal-slot": "1.0.2", - "regexp.prototype.flags": "1.3.0", - "side-channel": "1.0.2" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "has-symbols": "^1.0.1", + "internal-slot": "^1.0.2", + "regexp.prototype.flags": "^1.3.0", + "side-channel": "^1.0.2" } }, "string.prototype.trimleft": { @@ -12367,8 +13776,8 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz", "integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==", "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1" + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" } }, "string.prototype.trimright": { @@ -12376,8 +13785,8 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz", "integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==", "requires": { - "define-properties": "1.1.3", - "function-bind": "1.1.1" + "define-properties": "^1.1.3", + "function-bind": "^1.1.1" } }, "string_decoder": { @@ -12385,7 +13794,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "requires": { - "safe-buffer": "5.2.0" + "safe-buffer": "~5.2.0" }, "dependencies": { "safe-buffer": { @@ -12400,9 +13809,9 @@ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz", "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==", "requires": { - "get-own-enumerable-property-symbols": "3.0.2", - "is-obj": "1.0.1", - "is-regexp": "1.0.0" + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" }, "dependencies": { "is-obj": { @@ -12417,7 +13826,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", "requires": { - "ansi-regex": "4.1.0" + "ansi-regex": "^4.1.0" }, "dependencies": { "ansi-regex": { @@ -12437,8 +13846,8 @@ "resolved": "https://registry.npmjs.org/strip-comments/-/strip-comments-1.0.2.tgz", "integrity": "sha512-kL97alc47hoyIQSV165tTt9rG5dn4w1dNnBhOQ3bOU1Nc1hel09jnXANaHJ7vzHLd4Ju8kseDGzlev96pghLFw==", "requires": { - "babel-extract-comments": "1.0.0", - "babel-plugin-transform-object-rest-spread": "6.26.0" + "babel-extract-comments": "^1.0.0", + "babel-plugin-transform-object-rest-spread": "^6.26.0" } }, "strip-eof": { @@ -12451,7 +13860,7 @@ "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", "requires": { - "min-indent": "1.0.0" + "min-indent": "^1.0.0" } }, "strip-json-comments": { @@ -12464,8 +13873,8 @@ "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-0.23.1.tgz", "integrity": "sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg==", "requires": { - "loader-utils": "1.4.0", - "schema-utils": "1.0.0" + "loader-utils": "^1.1.0", + "schema-utils": "^1.0.0" }, "dependencies": { "schema-utils": { @@ -12473,9 +13882,9 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "requires": { - "ajv": "6.12.0", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.4.1" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } } } @@ -12485,9 +13894,9 @@ "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", "requires": { - "browserslist": "4.11.0", - "postcss": "7.0.27", - "postcss-selector-parser": "3.1.2" + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" }, "dependencies": { "postcss-selector-parser": { @@ -12495,19 +13904,28 @@ "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", "requires": { - "dot-prop": "5.2.0", - "indexes-of": "1.0.1", - "uniq": "1.0.1" + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" } } } }, + "sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "dev": true, + "requires": { + "debug": "^4.1.0" + } + }, "supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "svg-parser": { @@ -12520,19 +13938,19 @@ "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", "requires": { - "chalk": "2.4.2", - "coa": "2.0.2", - "css-select": "2.1.0", - "css-select-base-adapter": "0.1.1", + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", "css-tree": "1.0.0-alpha.37", - "csso": "4.0.2", - "js-yaml": "3.13.1", - "mkdirp": "0.5.4", - "object.values": "1.1.1", - "sax": "1.2.4", - "stable": "0.1.8", - "unquote": "1.1.1", - "util.promisify": "1.0.1" + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" } }, "symbol-tree": { @@ -12545,10 +13963,10 @@ "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", "requires": { - "ajv": "6.12.0", - "lodash": "4.17.15", - "slice-ansi": "2.1.0", - "string-width": "3.1.0" + "ajv": "^6.10.2", + "lodash": "^4.17.14", + "slice-ansi": "^2.1.0", + "string-width": "^3.0.0" }, "dependencies": { "emoji-regex": { @@ -12566,9 +13984,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } } } @@ -12578,14 +13996,30 @@ "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==" }, + "temp-file": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz", + "integrity": "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==", + "dev": true, + "requires": { + "async-exit-hook": "^2.0.1", + "fs-extra": "^8.1.0" + } + }, + "term-size": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "dev": true + }, "terser": { "version": "4.6.7", "resolved": "https://registry.npmjs.org/terser/-/terser-4.6.7.tgz", "integrity": "sha512-fmr7M1f7DBly5cX2+rFDvmGBAaaZyPrHYK4mMdHEDAdNTqXSZgSOfqsfGq2HqPGT/1V0foZZuCZFx8CHKgAk3g==", "requires": { - "commander": "2.20.3", - "source-map": "0.6.1", - "source-map-support": "0.5.16" + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" }, "dependencies": { "source-map": { @@ -12600,15 +14034,15 @@ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz", "integrity": "sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w==", "requires": { - "cacache": "13.0.1", - "find-cache-dir": "3.3.1", - "jest-worker": "25.1.0", - "p-limit": "2.2.2", - "schema-utils": "2.6.5", - "serialize-javascript": "2.1.2", - "source-map": "0.6.1", - "terser": "4.6.7", - "webpack-sources": "1.4.3" + "cacache": "^13.0.1", + "find-cache-dir": "^3.2.0", + "jest-worker": "^25.1.0", + "p-limit": "^2.2.2", + "schema-utils": "^2.6.4", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.4.3", + "webpack-sources": "^1.4.3" }, "dependencies": { "find-cache-dir": { @@ -12616,9 +14050,9 @@ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", "requires": { - "commondir": "1.0.1", - "make-dir": "3.0.2", - "pkg-dir": "4.2.0" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" } }, "find-up": { @@ -12626,8 +14060,8 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "requires": { - "locate-path": "5.0.0", - "path-exists": "4.0.0" + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "has-flag": { @@ -12640,8 +14074,8 @@ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.1.0.tgz", "integrity": "sha512-ZHhHtlxOWSxCoNOKHGbiLzXnl42ga9CxDr27H36Qn+15pQZd3R/F24jrmjDelw9j/iHUIWMWs08/u2QN50HHOg==", "requires": { - "merge-stream": "2.0.0", - "supports-color": "7.1.0" + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" } }, "locate-path": { @@ -12649,7 +14083,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "requires": { - "p-locate": "4.1.0" + "p-locate": "^4.1.0" } }, "make-dir": { @@ -12657,7 +14091,7 @@ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", "requires": { - "semver": "6.3.0" + "semver": "^6.0.0" } }, "p-locate": { @@ -12665,7 +14099,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "requires": { - "p-limit": "2.2.2" + "p-limit": "^2.2.0" } }, "path-exists": { @@ -12678,7 +14112,7 @@ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "requires": { - "find-up": "4.1.0" + "find-up": "^4.0.0" } }, "source-map": { @@ -12691,7 +14125,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "requires": { - "has-flag": "4.0.0" + "has-flag": "^4.0.0" } } } @@ -12701,10 +14135,10 @@ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz", "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==", "requires": { - "glob": "7.1.6", - "minimatch": "3.0.4", - "read-pkg-up": "4.0.0", - "require-main-filename": "2.0.0" + "glob": "^7.1.3", + "minimatch": "^3.0.4", + "read-pkg-up": "^4.0.0", + "require-main-filename": "^2.0.0" } }, "text-table": { @@ -12727,8 +14161,8 @@ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", "requires": { - "readable-stream": "2.3.7", - "xtend": "4.0.2" + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" }, "dependencies": { "readable-stream": { @@ -12736,13 +14170,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "string_decoder": { @@ -12750,7 +14184,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -12765,7 +14199,7 @@ "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.11.tgz", "integrity": "sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ==", "requires": { - "setimmediate": "1.0.5" + "setimmediate": "^1.0.4" } }, "timsort": { @@ -12788,7 +14222,7 @@ "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "requires": { - "os-tmpdir": "1.0.2" + "os-tmpdir": "~1.0.2" } }, "tmpl": { @@ -12811,18 +14245,24 @@ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", "requires": { - "kind-of": "3.2.2" + "kind-of": "^3.0.2" } }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "dev": true + }, "to-regex": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", "requires": { - "define-property": "2.0.2", - "extend-shallow": "3.0.2", - "regex-not": "1.0.2", - "safe-regex": "1.1.0" + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" } }, "to-regex-range": { @@ -12830,8 +14270,8 @@ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", "requires": { - "is-number": "3.0.0", - "repeat-string": "1.6.1" + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" } }, "toidentifier": { @@ -12844,8 +14284,8 @@ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "requires": { - "psl": "1.7.0", - "punycode": "2.1.1" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, "tr46": { @@ -12853,7 +14293,16 @@ "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" + } + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "dev": true, + "requires": { + "utf8-byte-length": "^1.0.1" } }, "ts-pnp": { @@ -12871,7 +14320,7 @@ "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", "requires": { - "tslib": "1.11.1" + "tslib": "^1.8.1" } }, "tty-browserify": { @@ -12879,12 +14328,19 @@ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=" }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==", + "dev": true, + "optional": true + }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "^5.0.1" } }, "tweetnacl": { @@ -12902,7 +14358,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", "requires": { - "prelude-ls": "1.1.2" + "prelude-ls": "~1.1.2" } }, "type-fest": { @@ -12916,7 +14372,7 @@ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "requires": { "media-typer": "0.3.0", - "mime-types": "2.1.26" + "mime-types": "~2.1.24" } }, "typedarray": { @@ -12924,15 +14380,24 @@ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "uncontrollable": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.1.1.tgz", "integrity": "sha512-EcPYhot3uWTS3w00R32R2+vS8Vr53tttrvMj/yA1uYRhf8hbTG2GyugGqWDY0qIskxn0uTTojVd6wPYW9ZEf8Q==", "requires": { - "@babel/runtime": "7.9.2", - "@types/react": "16.9.25", - "invariant": "2.2.4", - "react-lifecycles-compat": "3.0.4" + "@babel/runtime": "^7.6.3", + "@types/react": "^16.9.11", + "invariant": "^2.2.4", + "react-lifecycles-compat": "^3.0.4" } }, "unicode-canonical-property-names-ecmascript": { @@ -12945,8 +14410,8 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", "requires": { - "unicode-canonical-property-names-ecmascript": "1.0.4", - "unicode-property-aliases-ecmascript": "1.1.0" + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" } }, "unicode-match-property-value-ecmascript": { @@ -12964,10 +14429,10 @@ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", "requires": { - "arr-union": "3.1.0", - "get-value": "2.0.6", - "is-extendable": "0.1.1", - "set-value": "2.0.1" + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" } }, "uniq": { @@ -12985,7 +14450,7 @@ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "requires": { - "unique-slug": "2.0.2" + "unique-slug": "^2.0.0" } }, "unique-slug": { @@ -12993,7 +14458,16 @@ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", "requires": { - "imurmurhash": "0.1.4" + "imurmurhash": "^0.1.4" + } + }, + "unique-string": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", + "dev": true, + "requires": { + "crypto-random-string": "^2.0.0" } }, "universalify": { @@ -13016,8 +14490,8 @@ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", "requires": { - "has-value": "0.3.1", - "isobject": "3.0.1" + "has-value": "^0.3.1", + "isobject": "^3.0.0" }, "dependencies": { "has-value": { @@ -13025,9 +14499,9 @@ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", "requires": { - "get-value": "2.0.6", - "has-values": "0.1.4", - "isobject": "2.1.0" + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" }, "dependencies": { "isobject": { @@ -13052,12 +14526,85 @@ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==" }, + "update-notifier": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", + "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", + "dev": true, + "requires": { + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", + "has-yarn": "^2.1.0", + "import-lazy": "^2.1.0", + "is-ci": "^2.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", + "is-yarn-global": "^0.3.0", + "latest-version": "^5.0.0", + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.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 + }, + "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 + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, "uri-js": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", "requires": { - "punycode": "2.1.1" + "punycode": "^2.1.0" } }, "urix": { @@ -13086,9 +14633,9 @@ "resolved": "https://registry.npmjs.org/url-loader/-/url-loader-2.3.0.tgz", "integrity": "sha512-goSdg8VY+7nPZKUEChZSEtW5gjbS66USIGCeSJ1OVOJ7Yfuh/36YxCwMi5HVEJh6mqUYOoy3NJ0vlOMrWsSHog==", "requires": { - "loader-utils": "1.4.0", - "mime": "2.4.4", - "schema-utils": "2.6.5" + "loader-utils": "^1.2.3", + "mime": "^2.4.4", + "schema-utils": "^2.5.0" } }, "url-parse": { @@ -13096,8 +14643,25 @@ "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", "requires": { - "querystringify": "2.1.1", - "requires-port": "1.0.0" + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "dev": true, + "requires": { + "prepend-http": "^2.0.0" + }, + "dependencies": { + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", + "dev": true + } } }, "use": { @@ -13105,6 +14669,12 @@ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==" }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=", + "dev": true + }, "util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", @@ -13130,10 +14700,10 @@ "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", "requires": { - "define-properties": "1.1.3", - "es-abstract": "1.17.5", - "has-symbols": "1.0.1", - "object.getownpropertydescriptors": "2.1.0" + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" } }, "utila": { @@ -13161,8 +14731,8 @@ "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "requires": { - "spdx-correct": "3.1.0", - "spdx-expression-parse": "3.0.0" + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" } }, "value-equal": { @@ -13185,9 +14755,9 @@ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", "requires": { - "assert-plus": "1.0.0", + "assert-plus": "^1.0.0", "core-util-is": "1.0.2", - "extsprintf": "1.3.0" + "extsprintf": "^1.2.0" } }, "vm-browserify": { @@ -13200,7 +14770,7 @@ "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", "requires": { - "browser-process-hrtime": "1.0.0" + "browser-process-hrtime": "^1.0.0" } }, "w3c-xmlserializer": { @@ -13208,9 +14778,9 @@ "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz", "integrity": "sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg==", "requires": { - "domexception": "1.0.1", - "webidl-conversions": "4.0.2", - "xml-name-validator": "3.0.0" + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" } }, "wait-for-expect": { @@ -13223,7 +14793,7 @@ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", "requires": { - "makeerror": "1.0.11" + "makeerror": "1.0.x" } }, "warning": { @@ -13231,7 +14801,7 @@ "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", "requires": { - "loose-envify": "1.4.0" + "loose-envify": "^1.0.0" } }, "watchpack": { @@ -13239,9 +14809,9 @@ "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.6.0.tgz", "integrity": "sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA==", "requires": { - "chokidar": "2.1.8", - "graceful-fs": "4.2.3", - "neo-async": "2.6.1" + "chokidar": "^2.0.2", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" }, "dependencies": { "binary-extensions": { @@ -13254,18 +14824,18 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.3", - "braces": "2.3.2", - "fsevents": "1.2.12", - "glob-parent": "3.1.0", - "inherits": "2.0.4", - "is-binary-path": "1.0.1", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.2.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "fsevents": { @@ -13274,9 +14844,9 @@ "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", "optional": true, "requires": { - "bindings": "1.5.0", - "nan": "2.14.0", - "node-pre-gyp": "0.14.0" + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -13286,7 +14856,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -13298,19 +14869,21 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.7" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -13321,15 +14894,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -13341,7 +14917,7 @@ "bundled": true, "optional": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "deep-extend": { @@ -13364,7 +14940,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.9.0" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -13377,14 +14953,14 @@ "bundled": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -13392,12 +14968,12 @@ "bundled": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "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" } }, "has-unicode": { @@ -13410,7 +14986,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -13418,7 +14994,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -13426,13 +15002,14 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.4", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -13442,8 +15019,9 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -13454,20 +15032,23 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.9.0", "bundled": true, + "optional": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.1.1" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "minizlib": { @@ -13475,14 +15056,15 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.9.0" + "minipass": "^2.9.0" } }, "mkdirp": { "version": "0.5.3", "bundled": true, + "optional": true, "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.5" } }, "ms": { @@ -13495,9 +15077,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "3.2.6", - "iconv-lite": "0.4.24", - "sax": "1.2.4" + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -13505,16 +15087,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.3", - "needle": "2.3.3", - "nopt": "4.0.3", - "npm-packlist": "1.4.8", - "npmlog": "4.1.2", - "rc": "1.2.8", - "rimraf": "2.7.1", - "semver": "5.7.1", - "tar": "4.4.13" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" } }, "nopt": { @@ -13522,8 +15104,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -13531,21 +15113,22 @@ "bundled": true, "optional": true, "requires": { - "npm-normalize-package-bin": "1.0.1" + "npm-normalize-package-bin": "^1.0.1" } }, "npm-normalize-package-bin": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "npm-packlist": { "version": "1.4.8", "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.3", - "npm-bundled": "1.1.1", - "npm-normalize-package-bin": "1.0.1" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npmlog": { @@ -13553,15 +15136,16 @@ "bundled": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -13571,8 +15155,9 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -13590,8 +15175,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -13609,10 +15194,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.5", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "readable-stream": { @@ -13620,13 +15205,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -13634,12 +15219,13 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.6" + "glob": "^7.1.3" } }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -13669,10 +15255,11 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -13680,14 +15267,15 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -13700,13 +15288,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.1.4", - "fs-minipass": "1.2.7", - "minipass": "2.9.0", - "minizlib": "1.3.3", - "mkdirp": "0.5.3", - "safe-buffer": "5.1.2", - "yallist": "3.1.1" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -13719,16 +15307,18 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.1.1", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -13737,8 +15327,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -13746,7 +15336,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -13756,7 +15346,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.13.1" + "binary-extensions": "^1.0.0" } }, "normalize-path": { @@ -13769,13 +15359,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -13783,9 +15373,9 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "requires": { - "graceful-fs": "4.2.3", - "micromatch": "3.1.10", - "readable-stream": "2.3.7" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "string_decoder": { @@ -13793,7 +15383,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } } } @@ -13803,7 +15393,7 @@ "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "requires": { - "minimalistic-assert": "1.0.1" + "minimalistic-assert": "^1.0.0" } }, "webidl-conversions": { @@ -13820,25 +15410,25 @@ "@webassemblyjs/helper-module-context": "1.8.5", "@webassemblyjs/wasm-edit": "1.8.5", "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "6.4.1", - "ajv": "6.12.0", - "ajv-keywords": "3.4.1", - "chrome-trace-event": "1.0.2", - "enhanced-resolve": "4.1.1", - "eslint-scope": "4.0.3", - "json-parse-better-errors": "1.0.2", - "loader-runner": "2.4.0", - "loader-utils": "1.4.0", - "memory-fs": "0.4.1", - "micromatch": "3.1.10", - "mkdirp": "0.5.4", - "neo-async": "2.6.1", - "node-libs-browser": "2.2.1", - "schema-utils": "1.0.0", - "tapable": "1.1.3", - "terser-webpack-plugin": "1.4.3", - "watchpack": "1.6.0", - "webpack-sources": "1.4.3" + "acorn": "^6.2.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.0", + "webpack-sources": "^1.4.1" }, "dependencies": { "acorn": { @@ -13851,21 +15441,21 @@ "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.3.tgz", "integrity": "sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw==", "requires": { - "bluebird": "3.7.2", - "chownr": "1.1.4", - "figgy-pudding": "3.5.1", - "glob": "7.1.6", - "graceful-fs": "4.2.3", - "infer-owner": "1.0.4", - "lru-cache": "5.1.1", - "mississippi": "3.0.0", - "mkdirp": "0.5.4", - "move-concurrently": "1.0.1", - "promise-inflight": "1.0.1", - "rimraf": "2.6.3", - "ssri": "6.0.1", - "unique-filename": "1.1.1", - "y18n": "4.0.0" + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" } }, "eslint-scope": { @@ -13873,8 +15463,8 @@ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", "requires": { - "esrecurse": "4.2.1", - "estraverse": "4.3.0" + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" } }, "schema-utils": { @@ -13882,9 +15472,9 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "requires": { - "ajv": "6.12.0", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.4.1" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, "source-map": { @@ -13897,7 +15487,7 @@ "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", "requires": { - "figgy-pudding": "3.5.1" + "figgy-pudding": "^3.5.1" } }, "terser-webpack-plugin": { @@ -13905,15 +15495,15 @@ "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", "requires": { - "cacache": "12.0.3", - "find-cache-dir": "2.1.0", - "is-wsl": "1.1.0", - "schema-utils": "1.0.0", - "serialize-javascript": "2.1.2", - "source-map": "0.6.1", - "terser": "4.6.7", - "webpack-sources": "1.4.3", - "worker-farm": "1.7.0" + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^2.1.2", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" } } } @@ -13923,11 +15513,11 @@ "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", "requires": { - "memory-fs": "0.4.1", - "mime": "2.4.4", - "mkdirp": "0.5.4", - "range-parser": "1.2.1", - "webpack-log": "2.0.0" + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" } }, "webpack-dev-server": { @@ -13936,37 +15526,37 @@ "integrity": "sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ==", "requires": { "ansi-html": "0.0.7", - "bonjour": "3.5.0", - "chokidar": "2.1.8", - "compression": "1.7.4", - "connect-history-api-fallback": "1.6.0", - "debug": "4.1.1", - "del": "4.1.1", - "express": "4.17.1", - "html-entities": "1.2.1", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.2.1", "http-proxy-middleware": "0.19.1", - "import-local": "2.0.0", - "internal-ip": "4.3.0", - "ip": "1.1.5", - "is-absolute-url": "3.0.3", - "killable": "1.0.1", - "loglevel": "1.6.7", - "opn": "5.5.0", - "p-retry": "3.0.1", - "portfinder": "1.0.25", - "schema-utils": "1.0.0", - "selfsigned": "1.10.7", - "semver": "6.3.0", - "serve-index": "1.9.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.6", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.25", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", "sockjs": "0.3.19", "sockjs-client": "1.4.0", - "spdy": "4.0.1", - "strip-ansi": "3.0.1", - "supports-color": "6.1.0", - "url": "0.11.0", - "webpack-dev-middleware": "3.7.2", - "webpack-log": "2.0.0", - "ws": "6.2.1", + "spdy": "^4.0.1", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", "yargs": "12.0.5" }, "dependencies": { @@ -13985,18 +15575,18 @@ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", "requires": { - "anymatch": "2.0.0", - "async-each": "1.0.3", - "braces": "2.3.2", - "fsevents": "1.2.12", - "glob-parent": "3.1.0", - "inherits": "2.0.4", - "is-binary-path": "1.0.1", - "is-glob": "4.0.1", - "normalize-path": "3.0.0", - "path-is-absolute": "1.0.1", - "readdirp": "2.2.1", - "upath": "1.2.0" + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" } }, "cliui": { @@ -14004,9 +15594,9 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", "requires": { - "string-width": "2.1.1", - "strip-ansi": "4.0.0", - "wrap-ansi": "2.1.0" + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" }, "dependencies": { "ansi-regex": { @@ -14019,7 +15609,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -14030,9 +15620,9 @@ "integrity": "sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q==", "optional": true, "requires": { - "bindings": "1.5.0", - "nan": "2.14.0", - "node-pre-gyp": "0.14.0" + "bindings": "^1.5.0", + "nan": "^2.12.1", + "node-pre-gyp": "*" }, "dependencies": { "abbrev": { @@ -14042,7 +15632,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -14054,19 +15645,21 @@ "bundled": true, "optional": true, "requires": { - "delegates": "1.0.0", - "readable-stream": "2.3.7" + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" } }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { - "balanced-match": "1.0.0", + "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, @@ -14077,15 +15670,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -14097,7 +15693,7 @@ "bundled": true, "optional": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.1" } }, "deep-extend": { @@ -14120,7 +15716,7 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.9.0" + "minipass": "^2.6.0" } }, "fs.realpath": { @@ -14133,14 +15729,14 @@ "bundled": true, "optional": true, "requires": { - "aproba": "1.2.0", - "console-control-strings": "1.1.0", - "has-unicode": "2.0.1", - "object-assign": "4.1.1", - "signal-exit": "3.0.2", - "string-width": "1.0.2", - "strip-ansi": "3.0.1", - "wide-align": "1.1.3" + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" } }, "glob": { @@ -14148,12 +15744,12 @@ "bundled": true, "optional": true, "requires": { - "fs.realpath": "1.0.0", - "inflight": "1.0.6", - "inherits": "2.0.4", - "minimatch": "3.0.4", - "once": "1.4.0", - "path-is-absolute": "1.0.1" + "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" } }, "has-unicode": { @@ -14166,7 +15762,7 @@ "bundled": true, "optional": true, "requires": { - "safer-buffer": "2.1.2" + "safer-buffer": ">= 2.1.2 < 3" } }, "ignore-walk": { @@ -14174,7 +15770,7 @@ "bundled": true, "optional": true, "requires": { - "minimatch": "3.0.4" + "minimatch": "^3.0.4" } }, "inflight": { @@ -14182,13 +15778,14 @@ "bundled": true, "optional": true, "requires": { - "once": "1.4.0", - "wrappy": "1.0.2" + "once": "^1.3.0", + "wrappy": "1" } }, "inherits": { "version": "2.0.4", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -14198,8 +15795,9 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "isarray": { @@ -14210,20 +15808,23 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { - "brace-expansion": "1.1.11" + "brace-expansion": "^1.1.7" } }, "minimist": { "version": "1.2.5", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.9.0", "bundled": true, + "optional": true, "requires": { - "safe-buffer": "5.1.2", - "yallist": "3.1.1" + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" } }, "minizlib": { @@ -14231,14 +15832,15 @@ "bundled": true, "optional": true, "requires": { - "minipass": "2.9.0" + "minipass": "^2.9.0" } }, "mkdirp": { "version": "0.5.3", "bundled": true, + "optional": true, "requires": { - "minimist": "1.2.5" + "minimist": "^1.2.5" } }, "ms": { @@ -14251,9 +15853,9 @@ "bundled": true, "optional": true, "requires": { - "debug": "3.2.6", - "iconv-lite": "0.4.24", - "sax": "1.2.4" + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" } }, "node-pre-gyp": { @@ -14261,16 +15863,16 @@ "bundled": true, "optional": true, "requires": { - "detect-libc": "1.0.3", - "mkdirp": "0.5.3", - "needle": "2.3.3", - "nopt": "4.0.3", - "npm-packlist": "1.4.8", - "npmlog": "4.1.2", - "rc": "1.2.8", - "rimraf": "2.7.1", - "semver": "5.7.1", - "tar": "4.4.13" + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4.4.2" } }, "nopt": { @@ -14278,8 +15880,8 @@ "bundled": true, "optional": true, "requires": { - "abbrev": "1.1.1", - "osenv": "0.1.5" + "abbrev": "1", + "osenv": "^0.1.4" } }, "npm-bundled": { @@ -14287,21 +15889,22 @@ "bundled": true, "optional": true, "requires": { - "npm-normalize-package-bin": "1.0.1" + "npm-normalize-package-bin": "^1.0.1" } }, "npm-normalize-package-bin": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "npm-packlist": { "version": "1.4.8", "bundled": true, "optional": true, "requires": { - "ignore-walk": "3.0.3", - "npm-bundled": "1.1.1", - "npm-normalize-package-bin": "1.0.1" + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" } }, "npmlog": { @@ -14309,15 +15912,16 @@ "bundled": true, "optional": true, "requires": { - "are-we-there-yet": "1.1.5", - "console-control-strings": "1.1.0", - "gauge": "2.7.4", - "set-blocking": "2.0.0" + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" } }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -14327,8 +15931,9 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { - "wrappy": "1.0.2" + "wrappy": "1" } }, "os-homedir": { @@ -14346,8 +15951,8 @@ "bundled": true, "optional": true, "requires": { - "os-homedir": "1.0.2", - "os-tmpdir": "1.0.2" + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" } }, "path-is-absolute": { @@ -14365,10 +15970,10 @@ "bundled": true, "optional": true, "requires": { - "deep-extend": "0.6.0", - "ini": "1.3.5", - "minimist": "1.2.5", - "strip-json-comments": "2.0.1" + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" } }, "readable-stream": { @@ -14376,13 +15981,13 @@ "bundled": true, "optional": true, "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "rimraf": { @@ -14390,12 +15995,13 @@ "bundled": true, "optional": true, "requires": { - "glob": "7.1.6" + "glob": "^7.1.3" } }, "safe-buffer": { "version": "5.1.2", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -14425,10 +16031,11 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } }, "string_decoder": { @@ -14436,14 +16043,15 @@ "bundled": true, "optional": true, "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "strip-json-comments": { @@ -14456,13 +16064,13 @@ "bundled": true, "optional": true, "requires": { - "chownr": "1.1.4", - "fs-minipass": "1.2.7", - "minipass": "2.9.0", - "minizlib": "1.3.3", - "mkdirp": "0.5.3", - "safe-buffer": "5.1.2", - "yallist": "3.1.1" + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" } }, "util-deprecate": { @@ -14475,16 +16083,18 @@ "bundled": true, "optional": true, "requires": { - "string-width": "1.0.2" + "string-width": "^1.0.2 || 2" } }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.1.1", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -14498,8 +16108,8 @@ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", "requires": { - "is-glob": "3.1.0", - "path-dirname": "1.0.2" + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" }, "dependencies": { "is-glob": { @@ -14507,7 +16117,7 @@ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", "requires": { - "is-extglob": "2.1.1" + "is-extglob": "^2.1.0" } } } @@ -14522,7 +16132,7 @@ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", "requires": { - "binary-extensions": "1.13.1" + "binary-extensions": "^1.0.0" } }, "is-fullwidth-code-point": { @@ -14540,13 +16150,13 @@ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.4", - "isarray": "1.0.0", - "process-nextick-args": "2.0.1", - "safe-buffer": "5.1.2", - "string_decoder": "1.1.1", - "util-deprecate": "1.0.2" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, "readdirp": { @@ -14554,9 +16164,9 @@ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", "requires": { - "graceful-fs": "4.2.3", - "micromatch": "3.1.10", - "readable-stream": "2.3.7" + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" } }, "require-main-filename": { @@ -14569,9 +16179,9 @@ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", "requires": { - "ajv": "6.12.0", - "ajv-errors": "1.0.1", - "ajv-keywords": "3.4.1" + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" } }, "string-width": { @@ -14579,8 +16189,8 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", "requires": { - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "4.0.0" + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" }, "dependencies": { "ansi-regex": { @@ -14593,7 +16203,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", "requires": { - "ansi-regex": "3.0.0" + "ansi-regex": "^3.0.0" } } } @@ -14603,7 +16213,7 @@ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "requires": { - "safe-buffer": "5.1.2" + "safe-buffer": "~5.1.0" } }, "strip-ansi": { @@ -14611,7 +16221,7 @@ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", "requires": { - "ansi-regex": "2.1.1" + "ansi-regex": "^2.0.0" } }, "supports-color": { @@ -14619,7 +16229,7 @@ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", "requires": { - "has-flag": "3.0.0" + "has-flag": "^3.0.0" } }, "wrap-ansi": { @@ -14627,8 +16237,8 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", "requires": { - "string-width": "1.0.2", - "strip-ansi": "3.0.1" + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" }, "dependencies": { "is-fullwidth-code-point": { @@ -14636,7 +16246,7 @@ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", "requires": { - "number-is-nan": "1.0.1" + "number-is-nan": "^1.0.0" } }, "string-width": { @@ -14644,9 +16254,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", "requires": { - "code-point-at": "1.1.0", - "is-fullwidth-code-point": "1.0.0", - "strip-ansi": "3.0.1" + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" } } } @@ -14656,7 +16266,7 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", "requires": { - "async-limiter": "1.0.1" + "async-limiter": "~1.0.0" } }, "yargs": { @@ -14664,18 +16274,18 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", "requires": { - "cliui": "4.1.0", - "decamelize": "1.2.0", - "find-up": "3.0.0", - "get-caller-file": "1.0.3", - "os-locale": "3.1.0", - "require-directory": "2.1.1", - "require-main-filename": "1.0.1", - "set-blocking": "2.0.0", - "string-width": "2.1.1", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "11.1.1" + "cliui": "^4.0.0", + "decamelize": "^1.2.0", + "find-up": "^3.0.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.0.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1 || ^4.0.0", + "yargs-parser": "^11.1.1" } }, "yargs-parser": { @@ -14683,8 +16293,8 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" } } } @@ -14694,8 +16304,8 @@ "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", "requires": { - "ansi-colors": "3.2.4", - "uuid": "3.4.0" + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" } }, "webpack-manifest-plugin": { @@ -14703,10 +16313,10 @@ "resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-2.2.0.tgz", "integrity": "sha512-9S6YyKKKh/Oz/eryM1RyLVDVmy3NSPV0JXMRhZ18fJsq+AwGxUY34X54VNwkzYcEmEkDwNxuEOboCZEebJXBAQ==", "requires": { - "fs-extra": "7.0.1", - "lodash": "4.17.15", - "object.entries": "1.1.1", - "tapable": "1.1.3" + "fs-extra": "^7.0.0", + "lodash": ">=3.5 <5", + "object.entries": "^1.1.0", + "tapable": "^1.0.0" }, "dependencies": { "fs-extra": { @@ -14714,9 +16324,9 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", "requires": { - "graceful-fs": "4.2.3", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } } } @@ -14726,8 +16336,8 @@ "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", "requires": { - "source-list-map": "2.0.1", - "source-map": "0.6.1" + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" }, "dependencies": { "source-map": { @@ -14742,9 +16352,9 @@ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.3.tgz", "integrity": "sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg==", "requires": { - "http-parser-js": "0.4.10", - "safe-buffer": "5.1.2", - "websocket-extensions": "0.1.3" + "http-parser-js": ">=0.4.0 <0.4.11", + "safe-buffer": ">=5.1.0", + "websocket-extensions": ">=0.1.1" } }, "websocket-extensions": { @@ -14775,9 +16385,9 @@ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", "requires": { - "lodash.sortby": "4.7.0", - "tr46": "1.0.1", - "webidl-conversions": "4.0.2" + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" } }, "which": { @@ -14785,7 +16395,7 @@ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "requires": { - "isexe": "2.0.0" + "isexe": "^2.0.0" } }, "which-module": { @@ -14793,6 +16403,15 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "widest-line": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "dev": true, + "requires": { + "string-width": "^4.0.0" + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -14803,7 +16422,7 @@ "resolved": "https://registry.npmjs.org/workbox-background-sync/-/workbox-background-sync-4.3.1.tgz", "integrity": "sha512-1uFkvU8JXi7L7fCHVBEEnc3asPpiAL33kO495UMcD5+arew9IbKW2rV5lpzhoWcm/qhGB89YfO4PmB/0hQwPRg==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-broadcast-update": { @@ -14811,7 +16430,7 @@ "resolved": "https://registry.npmjs.org/workbox-broadcast-update/-/workbox-broadcast-update-4.3.1.tgz", "integrity": "sha512-MTSfgzIljpKLTBPROo4IpKjESD86pPFlZwlvVG32Kb70hW+aob4Jxpblud8EhNb1/L5m43DUM4q7C+W6eQMMbA==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-build": { @@ -14819,29 +16438,29 @@ "resolved": "https://registry.npmjs.org/workbox-build/-/workbox-build-4.3.1.tgz", "integrity": "sha512-UHdwrN3FrDvicM3AqJS/J07X0KXj67R8Cg0waq1MKEOqzo89ap6zh6LmaLnRAjpB+bDIz+7OlPye9iii9KBnxw==", "requires": { - "@babel/runtime": "7.9.2", - "@hapi/joi": "15.1.1", - "common-tags": "1.8.0", - "fs-extra": "4.0.3", - "glob": "7.1.6", - "lodash.template": "4.5.0", - "pretty-bytes": "5.3.0", - "stringify-object": "3.3.0", - "strip-comments": "1.0.2", - "workbox-background-sync": "4.3.1", - "workbox-broadcast-update": "4.3.1", - "workbox-cacheable-response": "4.3.1", - "workbox-core": "4.3.1", - "workbox-expiration": "4.3.1", - "workbox-google-analytics": "4.3.1", - "workbox-navigation-preload": "4.3.1", - "workbox-precaching": "4.3.1", - "workbox-range-requests": "4.3.1", - "workbox-routing": "4.3.1", - "workbox-strategies": "4.3.1", - "workbox-streams": "4.3.1", - "workbox-sw": "4.3.1", - "workbox-window": "4.3.1" + "@babel/runtime": "^7.3.4", + "@hapi/joi": "^15.0.0", + "common-tags": "^1.8.0", + "fs-extra": "^4.0.2", + "glob": "^7.1.3", + "lodash.template": "^4.4.0", + "pretty-bytes": "^5.1.0", + "stringify-object": "^3.3.0", + "strip-comments": "^1.0.2", + "workbox-background-sync": "^4.3.1", + "workbox-broadcast-update": "^4.3.1", + "workbox-cacheable-response": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-expiration": "^4.3.1", + "workbox-google-analytics": "^4.3.1", + "workbox-navigation-preload": "^4.3.1", + "workbox-precaching": "^4.3.1", + "workbox-range-requests": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1", + "workbox-streams": "^4.3.1", + "workbox-sw": "^4.3.1", + "workbox-window": "^4.3.1" }, "dependencies": { "fs-extra": { @@ -14849,9 +16468,9 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.3.tgz", "integrity": "sha512-q6rbdDd1o2mAnQreO7YADIxf/Whx4AHBiRf6d+/cVT8h44ss+lHgxf1FemcqDnQt9X3ct4McHr+JMGlYSsK7Cg==", "requires": { - "graceful-fs": "4.2.3", - "jsonfile": "4.0.0", - "universalify": "0.1.2" + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" } } } @@ -14861,7 +16480,7 @@ "resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-4.3.1.tgz", "integrity": "sha512-Rp5qlzm6z8IOvnQNkCdO9qrDgDpoPNguovs0H8C+wswLuPgSzSp9p2afb5maUt9R1uTIwOXrVQMmPfPypv+npw==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-core": { @@ -14874,7 +16493,7 @@ "resolved": "https://registry.npmjs.org/workbox-expiration/-/workbox-expiration-4.3.1.tgz", "integrity": "sha512-vsJLhgQsQouv9m0rpbXubT5jw0jMQdjpkum0uT+d9tTwhXcEZks7qLfQ9dGSaufTD2eimxbUOJfWLbNQpIDMPw==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-google-analytics": { @@ -14882,10 +16501,10 @@ "resolved": "https://registry.npmjs.org/workbox-google-analytics/-/workbox-google-analytics-4.3.1.tgz", "integrity": "sha512-xzCjAoKuOb55CBSwQrbyWBKqp35yg1vw9ohIlU2wTy06ZrYfJ8rKochb1MSGlnoBfXGWss3UPzxR5QL5guIFdg==", "requires": { - "workbox-background-sync": "4.3.1", - "workbox-core": "4.3.1", - "workbox-routing": "4.3.1", - "workbox-strategies": "4.3.1" + "workbox-background-sync": "^4.3.1", + "workbox-core": "^4.3.1", + "workbox-routing": "^4.3.1", + "workbox-strategies": "^4.3.1" } }, "workbox-navigation-preload": { @@ -14893,7 +16512,7 @@ "resolved": "https://registry.npmjs.org/workbox-navigation-preload/-/workbox-navigation-preload-4.3.1.tgz", "integrity": "sha512-K076n3oFHYp16/C+F8CwrRqD25GitA6Rkd6+qAmLmMv1QHPI2jfDwYqrytOfKfYq42bYtW8Pr21ejZX7GvALOw==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-precaching": { @@ -14901,7 +16520,7 @@ "resolved": "https://registry.npmjs.org/workbox-precaching/-/workbox-precaching-4.3.1.tgz", "integrity": "sha512-piSg/2csPoIi/vPpp48t1q5JLYjMkmg5gsXBQkh/QYapCdVwwmKlU9mHdmy52KsDGIjVaqEUMFvEzn2LRaigqQ==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-range-requests": { @@ -14909,7 +16528,7 @@ "resolved": "https://registry.npmjs.org/workbox-range-requests/-/workbox-range-requests-4.3.1.tgz", "integrity": "sha512-S+HhL9+iTFypJZ/yQSl/x2Bf5pWnbXdd3j57xnb0V60FW1LVn9LRZkPtneODklzYuFZv7qK6riZ5BNyc0R0jZA==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-routing": { @@ -14917,7 +16536,7 @@ "resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-4.3.1.tgz", "integrity": "sha512-FkbtrODA4Imsi0p7TW9u9MXuQ5P4pVs1sWHK4dJMMChVROsbEltuE79fBoIk/BCztvOJ7yUpErMKa4z3uQLX+g==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-strategies": { @@ -14925,7 +16544,7 @@ "resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-4.3.1.tgz", "integrity": "sha512-F/+E57BmVG8dX6dCCopBlkDvvhg/zj6VDs0PigYwSN23L8hseSRwljrceU2WzTvk/+BSYICsWmRq5qHS2UYzhw==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-streams": { @@ -14933,7 +16552,7 @@ "resolved": "https://registry.npmjs.org/workbox-streams/-/workbox-streams-4.3.1.tgz", "integrity": "sha512-4Kisis1f/y0ihf4l3u/+ndMkJkIT4/6UOacU3A4BwZSAC9pQ9vSvJpIi/WFGQRH/uPXvuVjF5c2RfIPQFSS2uA==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "workbox-sw": { @@ -14946,9 +16565,9 @@ "resolved": "https://registry.npmjs.org/workbox-webpack-plugin/-/workbox-webpack-plugin-4.3.1.tgz", "integrity": "sha512-gJ9jd8Mb8wHLbRz9ZvGN57IAmknOipD3W4XNE/Lk/4lqs5Htw4WOQgakQy/o/4CoXQlMCYldaqUg+EJ35l9MEQ==", "requires": { - "@babel/runtime": "7.9.2", - "json-stable-stringify": "1.0.1", - "workbox-build": "4.3.1" + "@babel/runtime": "^7.0.0", + "json-stable-stringify": "^1.0.1", + "workbox-build": "^4.3.1" } }, "workbox-window": { @@ -14956,7 +16575,7 @@ "resolved": "https://registry.npmjs.org/workbox-window/-/workbox-window-4.3.1.tgz", "integrity": "sha512-C5gWKh6I58w3GeSc0wp2Ne+rqVw8qwcmZnQGpjiek8A2wpbxSJb1FdCoQVO+jDJs35bFgo/WETgl1fqgsxN0Hg==", "requires": { - "workbox-core": "4.3.1" + "workbox-core": "^4.3.1" } }, "worker-farm": { @@ -14964,7 +16583,7 @@ "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", "requires": { - "errno": "0.1.7" + "errno": "~0.1.7" } }, "worker-rpc": { @@ -14972,7 +16591,7 @@ "resolved": "https://registry.npmjs.org/worker-rpc/-/worker-rpc-0.1.1.tgz", "integrity": "sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg==", "requires": { - "microevent.ts": "0.1.1" + "microevent.ts": "~0.1.1" } }, "wrap-ansi": { @@ -14980,9 +16599,9 @@ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", "requires": { - "ansi-styles": "3.2.1", - "string-width": "3.1.0", - "strip-ansi": "5.2.0" + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" }, "dependencies": { "emoji-regex": { @@ -15000,9 +16619,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } } } @@ -15017,7 +16636,7 @@ "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", "requires": { - "mkdirp": "0.5.4" + "mkdirp": "^0.5.1" } }, "write-file-atomic": { @@ -15025,9 +16644,9 @@ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", "requires": { - "graceful-fs": "4.2.3", - "imurmurhash": "0.1.4", - "signal-exit": "3.0.2" + "graceful-fs": "^4.1.11", + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.2" } }, "ws": { @@ -15035,9 +16654,15 @@ "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", "requires": { - "async-limiter": "1.0.1" + "async-limiter": "~1.0.0" } }, + "xdg-basedir": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "dev": true + }, "xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", @@ -15053,7 +16678,7 @@ "resolved": "https://registry.npmjs.org/xregexp/-/xregexp-4.3.0.tgz", "integrity": "sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g==", "requires": { - "@babel/runtime-corejs3": "7.9.2" + "@babel/runtime-corejs3": "^7.8.3" } }, "xtend": { @@ -15076,7 +16701,7 @@ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.8.3.tgz", "integrity": "sha512-X/v7VDnK+sxbQ2Imq4Jt2PRUsRsP7UcpSl3Llg6+NRRqWLIvxkMFYtH1FmvwNGYRKKPa+EPA4qDBlI9WVG1UKw==", "requires": { - "@babel/runtime": "7.9.2" + "@babel/runtime": "^7.8.7" } }, "yargs": { @@ -15084,16 +16709,16 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", "requires": { - "cliui": "5.0.0", - "find-up": "3.0.0", - "get-caller-file": "2.0.5", - "require-directory": "2.1.1", - "require-main-filename": "2.0.0", - "set-blocking": "2.0.0", - "string-width": "3.1.0", - "which-module": "2.0.0", - "y18n": "4.0.0", - "yargs-parser": "13.1.2" + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" }, "dependencies": { "emoji-regex": { @@ -15111,9 +16736,9 @@ "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", "requires": { - "emoji-regex": "7.0.3", - "is-fullwidth-code-point": "2.0.0", - "strip-ansi": "5.2.0" + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" } } } @@ -15123,8 +16748,18 @@ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", "requires": { - "camelcase": "5.3.1", - "decamelize": "1.2.0" + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "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/interface/package.json b/interface/package.json index d8c6219..a23fd01 100644 --- a/interface/package.json +++ b/interface/package.json @@ -1,24 +1,47 @@ { "name": "interface", "version": "0.1.0", + "description": "experimental desktop application for OpenUBA", "private": true, "proxy": "http://localhost:3001", + "main": "server.js", + "homepage": "./", "dependencies": { "@testing-library/jest-dom": "^4.2.4", "@testing-library/react": "^9.5.0", "@testing-library/user-event": "^7.2.1", "bootstrap": "^4.4.1", "react": "^16.13.1", - "react-bootstrap": "^1.0.0", + "react-bootstrap": "^1.0.1", "react-dom": "^16.13.1", "react-router-dom": "^5.1.2", "react-scripts": "3.4.1" }, "scripts": { - "start": "react-scripts start", + "start": "export BROWSER=none && react-scripts start", "build": "react-scripts build", "test": "react-scripts test", - "eject": "react-scripts eject" + "eject": "react-scripts eject", + "start-electron": "export ELECTRON_START_URL=http://localhost:3000 && export NODE_OPTIONS=--http-parser=legacy && electron .", + "start-electron-static": "export NODE_OPTIONS='--http-parser=legacy' && electron .", + "build-electron": "mkdir -f build/src && cp -r . build/ && cp -r src/shared/. build/src/shared", + "package": "electron-builder build --mac --win -c.extraMetadata.main=server.js --publish never" + }, + "build": { + "files": [ + "build/**/*", + "node_modules/**/*", + "public/**/*", + "package.json", + "dist/**/*", + "storage/**/*", + "*.js" + ], + "publish": { + "provider": "github", + "repo": "OpenUBA", + "owner": "GACWR" + } }, "eslintConfig": { "extends": "react-app" @@ -34,5 +57,9 @@ "last 1 firefox version", "last 1 safari version" ] + }, + "devDependencies": { + "electron": "^8.1.0", + "electron-builder": "^22.4.1" } } diff --git a/interface/preload.js b/interface/preload.js new file mode 100644 index 0000000..40d7ecf --- /dev/null +++ b/interface/preload.js @@ -0,0 +1 @@ +window.ipcRenderer = require('electron').ipcRenderer; diff --git a/interface/public/index.html b/interface/public/index.html index aa069f2..e5f8498 100644 --- a/interface/public/index.html +++ b/interface/public/index.html @@ -7,7 +7,7 @@ - React App + OpenUBA v0.0.1 diff --git a/interface/server.js b/interface/server.js index ff3b6c8..ae24bf9 100644 --- a/interface/server.js +++ b/interface/server.js @@ -12,55 +12,90 @@ GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the OpenUBA Platform. If not, see . */ -const express = require('express'); -const app = express(); + +const { app, BrowserWindow } = require('electron') +const { ipcMain } = require('electron') const path = require('path'); -const router = express.Router(); +const url = require('url'); +var fs = require('fs'); + +let win + +//const express = require('express'); +// const app = express(); +//const path = require('path'); +//const router = express.Router(); + + +// ELECTRON + +const DEFAULT_GLOBAL_STATE = { + main: '' +} +let GLOBAL_STATE = {} +function createWindow () { + win = new BrowserWindow({ + width: 1400, + height: 700, + resizable: false, + webPreferences: { + webSecurity: false, + nodeIntegration: false, + preload: __dirname + '/preload.js' + } + }) -//app.use(express.static('html')) -app.use(express.static(path.join(__dirname, 'build'))); + const startUrl = process.env.ELECTRON_START_URL || url.format({ + pathname: path.join(__dirname, 'build/index.html'), + protocol: 'file:', + slashes: true, + }); + win.loadURL(startUrl); -router.get('/', function (req, res) { - console.log(__dirname) - res.sendFile(path.join(__dirname, 'build', 'index.html')); - //__dirname : It will resolve to your project folder. -}); + // Open the DevTools. + win.webContents.openDevTools() + win.on('closed', () => { + win = null + }) +} -router.get('/dev', function (req, res) { - console.log(__dirname) - res.sendFile(path.join(__dirname+'/html/index.html')); -}); +app.on('ready', (function(){ + // win.webContents.on('did-finish-load', function() { + // win.webContents.executeJavaScript("alert('Hello There!');"); + // }); + console.log(win) + createWindow() +})) -router.get('/data',function(req,res){ - console.log(__dirname) - res.sendFile(path.join(__dirname+'/html/data.html')); -}); -router.get('/modeling',function(req,res){ - console.log(__dirname) - res.sendFile(path.join(__dirname+'/html/modeling.html')); -}); +app.on('window-all-closed', () => { + // On macOS it is common for applications and their menu bar + // to stay active until the user quits explicitly with Cmd + Q + if (process.platform !== 'darwin') { + app.quit() + } +}) -router.get('/anomalies',function(req,res){ - console.log(__dirname) - res.sendFile(path.join(__dirname+'/html/anomalies.html')); -}); +app.on('activate', () => { + // On macOS it's common to re-create a window in the app when the + // dock icon is clicked and there are no other windows open. + if (win === null) { + createWindow() + } +}) -router.get('/cases',function(req,res){ - console.log(__dirname) - res.sendFile(path.join(__dirname+'/html/cases.html')); -}); +///////////////// +ipcMain.on('global_call_message', (event, arg) => { + console.log("") +}) -router.get('/settings',function(req,res){ - console.log(__dirname) - res.sendFile(path.join(__dirname+'/html/settings.html')); -}); +///// END ELECTRON //add the router -app.use('/', router); -app.listen(process.env.port || 3001); +//app.use('/', router); +//app.listen(process.env.port || 3001); console.log('Running UI server at 3001'); diff --git a/interface/src/App.js b/interface/src/App.js index 3d33ec4..2e78179 100644 --- a/interface/src/App.js +++ b/interface/src/App.js @@ -75,6 +75,7 @@ class App extends React.Component{ {/*end system log*/} +
diff --git a/interface/src/GlobalContext/GlobalContext.js b/interface/src/GlobalContext/GlobalContext.js new file mode 100644 index 0000000..3fcb538 --- /dev/null +++ b/interface/src/GlobalContext/GlobalContext.js @@ -0,0 +1,7 @@ +import React from 'react' + +const GlobalContext = React.createContext({ + username: "" +}); + +export default GlobalContext; diff --git a/interface/src/GlobalContext/index.js b/interface/src/GlobalContext/index.js new file mode 100644 index 0000000..18d5446 --- /dev/null +++ b/interface/src/GlobalContext/index.js @@ -0,0 +1 @@ +export { default } from './GlobalContext' diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0a9cf35 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,617 @@ +{ + "requires": true, + "lockfileVersion": 1, + "dependencies": { + "@electron/get": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", + "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", + "requires": { + "debug": "^4.1.1", + "env-paths": "^2.2.0", + "fs-extra": "^8.1.0", + "global-agent": "^2.0.2", + "global-tunnel-ng": "^2.7.1", + "got": "^9.6.0", + "progress": "^2.0.3", + "sanitize-filename": "^1.6.2", + "sumchecker": "^3.0.1" + } + }, + "@sindresorhus/is": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", + "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==" + }, + "@szmarczak/http-timer": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", + "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", + "requires": { + "defer-to-connect": "^1.0.1" + } + }, + "@types/node": { + "version": "12.12.38", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.38.tgz", + "integrity": "sha512-75eLjX0pFuTcUXnnWmALMzzkYorjND0ezNEycaKesbUBg9eGZp4GHPuDmkRc4mQQvIpe29zrzATNRA6hkYqwmA==" + }, + "boolean": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", + "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==" + }, + "buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "cacheable-request": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", + "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", + "requires": { + "clone-response": "^1.0.2", + "get-stream": "^5.1.0", + "http-cache-semantics": "^4.0.0", + "keyv": "^3.0.0", + "lowercase-keys": "^2.0.0", + "normalize-url": "^4.1.0", + "responselike": "^1.0.2" + }, + "dependencies": { + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "lowercase-keys": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", + "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==" + } + } + }, + "clone-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", + "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/config-chain/-/config-chain-1.1.12.tgz", + "integrity": "sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==", + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "core-js": { + "version": "3.6.5", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", + "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" + }, + "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=" + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "decompress-response": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", + "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", + "requires": { + "mimic-response": "^1.0.0" + } + }, + "defer-to-connect": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", + "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==" + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", + "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==" + }, + "duplexer3": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", + "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=" + }, + "electron": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/electron/-/electron-8.2.5.tgz", + "integrity": "sha512-LxSCUwmlfJtRwthd3ofpYaZ+1C2hQSW8Ep1DD9K3VbnDItO+kb3t1z35daJgAab78j54aOwo9gMxJtvU0Ftj6w==", + "requires": { + "@electron/get": "^1.0.1", + "@types/node": "^12.0.12", + "extract-zip": "^1.0.3" + } + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" + }, + "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==", + "requires": { + "once": "^1.4.0" + } + }, + "env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==" + }, + "es6-error": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", + "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==" + }, + "escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" + }, + "extract-zip": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.7.0.tgz", + "integrity": "sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==", + "requires": { + "concat-stream": "^1.6.2", + "debug": "^2.6.9", + "mkdirp": "^0.5.4", + "yauzl": "^2.10.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + } + } + }, + "fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=", + "requires": { + "pend": "~1.2.0" + } + }, + "fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "requires": { + "pump": "^3.0.0" + } + }, + "global-agent": { + "version": "2.1.8", + "resolved": "https://registry.npmjs.org/global-agent/-/global-agent-2.1.8.tgz", + "integrity": "sha512-VpBe/rhY6Rw2VDOTszAMNambg+4Qv8j0yiTNDYEXXXxkUNGWLHp8A3ztK4YDBbFNcWF4rgsec6/5gPyryya/+A==", + "requires": { + "boolean": "^3.0.0", + "core-js": "^3.6.4", + "es6-error": "^4.1.1", + "matcher": "^2.1.0", + "roarr": "^2.15.2", + "semver": "^7.1.2", + "serialize-error": "^5.0.0" + } + }, + "global-tunnel-ng": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz", + "integrity": "sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==", + "requires": { + "encodeurl": "^1.0.2", + "lodash": "^4.17.10", + "npm-conf": "^1.1.3", + "tunnel": "^0.0.6" + } + }, + "globalthis": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.1.tgz", + "integrity": "sha512-mJPRTc/P39NH/iNG4mXa9aIhNymaQikTrnspeCa2ZuJ+mH2QN/rXwtX3XwKrHqWgUQFbNZKtHM105aHzJalElw==", + "requires": { + "define-properties": "^1.1.3" + } + }, + "got": { + "version": "9.6.0", + "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", + "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "requires": { + "@sindresorhus/is": "^0.14.0", + "@szmarczak/http-timer": "^1.1.2", + "cacheable-request": "^6.0.0", + "decompress-response": "^3.3.0", + "duplexer3": "^0.1.4", + "get-stream": "^4.1.0", + "lowercase-keys": "^1.0.1", + "mimic-response": "^1.0.1", + "p-cancelable": "^1.0.0", + "to-readable-stream": "^1.0.0", + "url-parse-lax": "^3.0.0" + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "json-buffer": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", + "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=" + }, + "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=" + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "keyv": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", + "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "requires": { + "json-buffer": "3.0.0" + } + }, + "lodash": { + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz", + "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==" + }, + "lowercase-keys": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", + "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==" + }, + "matcher": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/matcher/-/matcher-2.1.0.tgz", + "integrity": "sha512-o+nZr+vtJtgPNklyeUKkkH42OsK8WAfdgaJE2FNxcjLPg+5QbeEoT6vRj8Xq/iv18JlQ9cmKsEu0b94ixWf1YQ==", + "requires": { + "escape-string-regexp": "^2.0.0" + } + }, + "mimic-response": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", + "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==" + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "requires": { + "minimist": "^1.2.5" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "normalize-url": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", + "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==" + }, + "npm-conf": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/npm-conf/-/npm-conf-1.1.3.tgz", + "integrity": "sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==", + "requires": { + "config-chain": "^1.1.11", + "pify": "^3.0.0" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "p-cancelable": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", + "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==" + }, + "pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=" + }, + "prepend-http": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", + "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==" + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/proto-list/-/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=" + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "responselike": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", + "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "requires": { + "lowercase-keys": "^1.0.0" + } + }, + "roarr": { + "version": "2.15.3", + "resolved": "https://registry.npmjs.org/roarr/-/roarr-2.15.3.tgz", + "integrity": "sha512-AEjYvmAhlyxOeB9OqPUzQCo3kuAkNfuDk/HqWbZdFsqDFpapkTjiw+p4svNEoRLvuqNTxqfL+s+gtD4eDgZ+CA==", + "requires": { + "boolean": "^3.0.0", + "detect-node": "^2.0.4", + "globalthis": "^1.0.1", + "json-stringify-safe": "^5.0.1", + "semver-compare": "^1.0.0", + "sprintf-js": "^1.1.2" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "sanitize-filename": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.3.tgz", + "integrity": "sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==", + "requires": { + "truncate-utf8-bytes": "^1.0.0" + } + }, + "semver": { + "version": "7.3.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", + "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" + }, + "semver-compare": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", + "integrity": "sha1-De4hahyUGrN+nvsXiPavxf9VN/w=" + }, + "serialize-error": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-5.0.0.tgz", + "integrity": "sha512-/VtpuyzYf82mHYTtI4QKtwHa79vAdU5OQpNPAmE/0UDdlGT0ZxHwC+J6gXkw29wwoVI8fMPsfcVHOwXtUQYYQA==", + "requires": { + "type-fest": "^0.8.0" + } + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "sumchecker": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", + "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", + "requires": { + "debug": "^4.1.0" + } + }, + "to-readable-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", + "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==" + }, + "truncate-utf8-bytes": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz", + "integrity": "sha1-QFkjkJWS1W94pYGENLC3hInKXys=", + "requires": { + "utf8-byte-length": "^1.0.1" + } + }, + "tunnel": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/tunnel/-/tunnel-0.0.6.tgz", + "integrity": "sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==" + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==" + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" + }, + "url-parse-lax": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", + "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "requires": { + "prepend-http": "^2.0.0" + } + }, + "utf8-byte-length": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", + "integrity": "sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=", + "requires": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + } + } +} From d093ce58c640cb0aad9cfd2bf2b7ef85a2148405 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Wed, 13 May 2020 22:09:20 -0400 Subject: [PATCH 02/16] fixed ProfileModel bug when using through the CLI, and updates-v --- .gitignore | 6 +++++- core/.mypy_cache/3.7/model.data.json | 2 +- core/.mypy_cache/3.7/model.meta.json | 2 +- core/__pycache__/model.cpython-37.pyc | Bin 12658 -> 12628 bytes core/model.py | 12 +++++++----- core/storage/model_sessions.json | 2 +- 6 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 7f9dbc4..41ece46 100644 --- a/.gitignore +++ b/.gitignore @@ -15,4 +15,8 @@ core/.mypy_cache/* interface/dist/ /interface/dist/ *.DS_Store - +/**/.DS_Store +/**/__pycache__ +/**/.mypy_cache +/**/.pyc +/**/*.mypy_cache diff --git a/core/.mypy_cache/3.7/model.data.json b/core/.mypy_cache/3.7/model.data.json index a05d3b0..625eab9 100644 --- a/core/.mypy_cache/3.7/model.data.json +++ b/core/.mypy_cache/3.7/model.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "model", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "B64DecodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64DecodeFile", "kind": "Gdef"}, "B64EncodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64EncodeFile", "kind": "Gdef"}, "Base64": {".class": "SymbolTableNode", "cross_ref": "encode.Base64", "kind": "Gdef"}, "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "DEFAULT_MODEL_LIBRARY": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.DEFAULT_MODEL_LIBRARY", "name": "DEFAULT_MODEL_LIBRARY", "type": "builtins.str"}}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "GetAllUsers": {".class": "SymbolTableNode", "cross_ref": "user.GetAllUsers", "kind": "Gdef"}, "Hash": {".class": "SymbolTableNode", "cross_ref": "hash.Hash", "kind": "Gdef"}, "HashData": {".class": "SymbolTableNode", "cross_ref": "hash.HashData", "kind": "Gdef"}, "HashFile": {".class": "SymbolTableNode", "cross_ref": "hash.HashFile", "kind": "Gdef"}, "LibraryAPI": {".class": "SymbolTableNode", "cross_ref": "api.LibraryAPI", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "MAX_COMPONENTS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MAX_COMPONENTS", "name": "MAX_COMPONENTS", "type": "builtins.int"}}, "MODELS_LIBRARY_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_LIBRARY_FILE_LOCATION", "name": "MODELS_LIBRARY_FILE_LOCATION", "type": "builtins.str"}}, "MODELS_SESSION_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_SESSION_FILE_LOCATION", "name": "MODELS_SESSION_FILE_LOCATION", "type": "builtins.str"}}, "Model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.Model", "name": "Model", "type_vars": []}, "flags": [], "fullname": "model.Model", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.Model", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "dataframe"], "flags": [], "fullname": "model.Model.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "dataframe"], "arg_types": ["model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Model", "ret_type": {".class": "NoneType"}, "variables": []}}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.Model.data", "name": "data", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.Model.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "run": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.Model.run", "name": "run", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelComponent": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelComponent", "name": "ModelComponent", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelComponent", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelComponent", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "EXTERNAL": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.EXTERNAL", "name": "EXTERNAL", "type": "builtins.str"}}, "NATIVE": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.NATIVE", "name": "NATIVE", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDataLoader": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDataLoader", "name": "ModelDataLoader", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelDataLoader", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelDataLoader", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "LOCAL_PANDAS_CSV": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_CSV", "name": "LOCAL_PANDAS_CSV", "type": "builtins.str"}}, "LOCAL_PANDAS_PARQUET": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_PARQUET", "name": "LOCAL_PANDAS_PARQUET", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDeployment": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDeployment", "name": "ModelDeployment", "type_vars": []}, "flags": [], "fullname": "model.ModelDeployment", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelDeployment", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "flags": [], "fullname": "model.ModelDeployment.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "arg_types": ["model.ModelDeployment", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelDeployment", "ret_type": {".class": "NoneType"}, "variables": []}}}, "did": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelDeployment.did", "name": "did", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelEngine": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelEngine", "name": "ModelEngine", "type_vars": []}, "flags": [], "fullname": "model.ModelEngine", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelEngine", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.__init__", "name": "__init__", "type": null}}, "execute": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.execute", "name": "execute", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.library", "name": "library", "type": "model.ModelLibrary"}}, "model_configuration": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.model_configuration", "name": "model_configuration", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelLibrary": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelLibrary", "name": "ModelLibrary", "type_vars": []}, "flags": [], "fullname": "model.ModelLibrary", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelLibrary", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelLibrary.__init__", "name": "__init__", "type": null}}, "api": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelLibrary.api", "name": "api", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "install_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.install_model", "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "install_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "is_installed": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.is_installed", "name": "is_installed", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "is_installed of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "remove_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "flags": [], "fullname": "model.ModelLibrary.remove_model", "name": "remove_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "arg_types": ["model.ModelLibrary", "builtins.int"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "remove_model of ModelLibrary", "ret_type": "builtins.bool", "variables": []}}}, "run_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.run_model", "name": "run_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "run_model of ModelLibrary", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}, "store_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.store_model", "name": "store_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "store_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelProfile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelProfile", "name": "ModelProfile", "type_vars": []}, "flags": [], "fullname": "model.ModelProfile", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelProfile", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "flags": [], "fullname": "model.ModelProfile.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "arg_types": ["model.ModelProfile", "model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelProfile", "ret_type": {".class": "NoneType"}, "variables": []}}}, "component": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.component", "name": "component", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "data": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.data", "name": "data", "type": null}}, "files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.files", "name": "files", "type": null}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.model", "name": "model", "type": "model.Model"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelReturnType": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelReturnType", "name": "ModelReturnType", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelReturnType", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelReturnType", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "USER_RISKS": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelReturnType.USER_RISKS", "name": "USER_RISKS", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelSession", "name": "ModelSession", "type_vars": []}, "flags": [], "fullname": "model.ModelSession", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "flags": [], "fullname": "model.ModelSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "arg_types": ["model.ModelSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "model.ModelLibrary"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "cleanup_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelSession.cleanup_model", "name": "cleanup_model", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.library", "name": "library", "type": "model.ModelLibrary"}}, "metadata": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.metadata", "name": "metadata", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "start_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "flags": [], "fullname": "model.ModelSession.start_job", "name": "start_job", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "arg_types": ["model.ModelSession", "dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "start_job of ModelSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ProfileModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ProfileModel", "name": "ProfileModel", "type_vars": []}, "flags": [], "fullname": "model.ProfileModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ProfileModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "flags": [], "fullname": "model.ProfileModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "arg_types": ["model.ProfileModel", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ProfileModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model_name": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ProfileModel.model_name", "name": "model_name", "type": "builtins.str"}}, "profile": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ProfileModel.profile", "name": "profile", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ReadJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.ReadJSONFileFS", "kind": "Gdef"}, "Timestamp": {".class": "SymbolTableNode", "cross_ref": "utility.Timestamp", "kind": "Gdef"}, "User": {".class": "SymbolTableNode", "cross_ref": "user.User", "kind": "Gdef"}, "UserSet": {".class": "SymbolTableNode", "cross_ref": "user.UserSet", "kind": "Gdef"}, "VerifyModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.VerifyModel", "name": "VerifyModel", "type_vars": []}, "flags": [], "fullname": "model.VerifyModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.VerifyModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.VerifyModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.VerifyModel", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of VerifyModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.VerifyModel.model", "name": "model", "type": "model.Model"}}, "verify_model_encodings": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_encodings", "name": "verify_model_encodings", "type": null}}, "verify_model_files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_files", "name": "verify_model_files", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "WriteJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.WriteJSONFileFS", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__package__", "name": "__package__", "type": "builtins.str"}}, "io": {".class": "SymbolTableNode", "cross_ref": "io", "kind": "Gdef"}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_modules": {".class": "SymbolTableNode", "cross_ref": "model_modules", "kind": "Gdef"}, "os": {".class": "SymbolTableNode", "cross_ref": "os", "kind": "Gdef"}, "path": {".class": "SymbolTableNode", "cross_ref": "os.path", "kind": "Gdef"}, "shutil": {".class": "SymbolTableNode", "cross_ref": "shutil", "kind": "Gdef"}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "urllib": {".class": "SymbolTableNode", "cross_ref": "urllib", "kind": "Gdef"}}, "path": "model.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "model", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "B64DecodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64DecodeFile", "kind": "Gdef"}, "B64EncodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64EncodeFile", "kind": "Gdef"}, "Base64": {".class": "SymbolTableNode", "cross_ref": "encode.Base64", "kind": "Gdef"}, "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "DEFAULT_MODEL_LIBRARY": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.DEFAULT_MODEL_LIBRARY", "name": "DEFAULT_MODEL_LIBRARY", "type": "builtins.str"}}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "GetAllUsers": {".class": "SymbolTableNode", "cross_ref": "user.GetAllUsers", "kind": "Gdef"}, "Hash": {".class": "SymbolTableNode", "cross_ref": "hash.Hash", "kind": "Gdef"}, "HashData": {".class": "SymbolTableNode", "cross_ref": "hash.HashData", "kind": "Gdef"}, "HashFile": {".class": "SymbolTableNode", "cross_ref": "hash.HashFile", "kind": "Gdef"}, "LibraryAPI": {".class": "SymbolTableNode", "cross_ref": "api.LibraryAPI", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "MAX_COMPONENTS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MAX_COMPONENTS", "name": "MAX_COMPONENTS", "type": "builtins.int"}}, "MODELS_LIBRARY_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_LIBRARY_FILE_LOCATION", "name": "MODELS_LIBRARY_FILE_LOCATION", "type": "builtins.str"}}, "MODELS_SESSION_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_SESSION_FILE_LOCATION", "name": "MODELS_SESSION_FILE_LOCATION", "type": "builtins.str"}}, "Model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.Model", "name": "Model", "type_vars": []}, "flags": [], "fullname": "model.Model", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.Model", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 1], "arg_names": ["self", "metadata", "dataframe"], "flags": [], "fullname": "model.Model.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 1], "arg_names": ["self", "metadata", "dataframe"], "arg_types": ["model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, {".class": "UnionType", "items": ["dataset.CoreDataFrame", {".class": "NoneType"}]}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Model", "ret_type": {".class": "NoneType"}, "variables": []}}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.Model.data", "name": "data", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.Model.dataframe", "name": "dataframe", "type": {".class": "UnionType", "items": ["dataset.CoreDataFrame", {".class": "NoneType"}]}}}, "run": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.Model.run", "name": "run", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelComponent": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelComponent", "name": "ModelComponent", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelComponent", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelComponent", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "EXTERNAL": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.EXTERNAL", "name": "EXTERNAL", "type": "builtins.str"}}, "NATIVE": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.NATIVE", "name": "NATIVE", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDataLoader": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDataLoader", "name": "ModelDataLoader", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelDataLoader", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelDataLoader", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "LOCAL_PANDAS_CSV": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_CSV", "name": "LOCAL_PANDAS_CSV", "type": "builtins.str"}}, "LOCAL_PANDAS_PARQUET": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_PARQUET", "name": "LOCAL_PANDAS_PARQUET", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDeployment": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDeployment", "name": "ModelDeployment", "type_vars": []}, "flags": [], "fullname": "model.ModelDeployment", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelDeployment", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "flags": [], "fullname": "model.ModelDeployment.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "arg_types": ["model.ModelDeployment", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelDeployment", "ret_type": {".class": "NoneType"}, "variables": []}}}, "did": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelDeployment.did", "name": "did", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelEngine": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelEngine", "name": "ModelEngine", "type_vars": []}, "flags": [], "fullname": "model.ModelEngine", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelEngine", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.__init__", "name": "__init__", "type": null}}, "execute": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.execute", "name": "execute", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.library", "name": "library", "type": "model.ModelLibrary"}}, "model_configuration": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.model_configuration", "name": "model_configuration", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelLibrary": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelLibrary", "name": "ModelLibrary", "type_vars": []}, "flags": [], "fullname": "model.ModelLibrary", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelLibrary", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelLibrary.__init__", "name": "__init__", "type": null}}, "api": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelLibrary.api", "name": "api", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "install_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.install_model", "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "install_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "is_installed": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.is_installed", "name": "is_installed", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "is_installed of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "remove_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "flags": [], "fullname": "model.ModelLibrary.remove_model", "name": "remove_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "arg_types": ["model.ModelLibrary", "builtins.int"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "remove_model of ModelLibrary", "ret_type": "builtins.bool", "variables": []}}}, "run_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.run_model", "name": "run_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "run_model of ModelLibrary", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}, "store_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.store_model", "name": "store_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "store_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelProfile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelProfile", "name": "ModelProfile", "type_vars": []}, "flags": [], "fullname": "model.ModelProfile", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelProfile", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "flags": [], "fullname": "model.ModelProfile.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "arg_types": ["model.ModelProfile", "model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelProfile", "ret_type": {".class": "NoneType"}, "variables": []}}}, "component": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.component", "name": "component", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "data": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.data", "name": "data", "type": null}}, "files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.files", "name": "files", "type": null}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.model", "name": "model", "type": "model.Model"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelReturnType": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelReturnType", "name": "ModelReturnType", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelReturnType", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelReturnType", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "USER_RISKS": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelReturnType.USER_RISKS", "name": "USER_RISKS", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelSession", "name": "ModelSession", "type_vars": []}, "flags": [], "fullname": "model.ModelSession", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "flags": [], "fullname": "model.ModelSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "arg_types": ["model.ModelSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "model.ModelLibrary"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "cleanup_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelSession.cleanup_model", "name": "cleanup_model", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.library", "name": "library", "type": "model.ModelLibrary"}}, "metadata": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.metadata", "name": "metadata", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "start_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "flags": [], "fullname": "model.ModelSession.start_job", "name": "start_job", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "arg_types": ["model.ModelSession", "dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "start_job of ModelSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ProfileModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ProfileModel", "name": "ProfileModel", "type_vars": []}, "flags": [], "fullname": "model.ProfileModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ProfileModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "flags": [], "fullname": "model.ProfileModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "arg_types": ["model.ProfileModel", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ProfileModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model_name": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ProfileModel.model_name", "name": "model_name", "type": "builtins.str"}}, "profile": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ProfileModel.profile", "name": "profile", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ReadJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.ReadJSONFileFS", "kind": "Gdef"}, "Timestamp": {".class": "SymbolTableNode", "cross_ref": "utility.Timestamp", "kind": "Gdef"}, "User": {".class": "SymbolTableNode", "cross_ref": "user.User", "kind": "Gdef"}, "UserSet": {".class": "SymbolTableNode", "cross_ref": "user.UserSet", "kind": "Gdef"}, "VerifyModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.VerifyModel", "name": "VerifyModel", "type_vars": []}, "flags": [], "fullname": "model.VerifyModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.VerifyModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.VerifyModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.VerifyModel", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of VerifyModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.VerifyModel.model", "name": "model", "type": "model.Model"}}, "verify_model_encodings": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_encodings", "name": "verify_model_encodings", "type": null}}, "verify_model_files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_files", "name": "verify_model_files", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "WriteJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.WriteJSONFileFS", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__package__", "name": "__package__", "type": "builtins.str"}}, "io": {".class": "SymbolTableNode", "cross_ref": "io", "kind": "Gdef"}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_modules": {".class": "SymbolTableNode", "cross_ref": "model_modules", "kind": "Gdef"}, "os": {".class": "SymbolTableNode", "cross_ref": "os", "kind": "Gdef"}, "path": {".class": "SymbolTableNode", "cross_ref": "os.path", "kind": "Gdef"}, "shutil": {".class": "SymbolTableNode", "cross_ref": "shutil", "kind": "Gdef"}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "urllib": {".class": "SymbolTableNode", "cross_ref": "urllib", "kind": "Gdef"}}, "path": "model.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/model.meta.json b/core/.mypy_cache/3.7/model.meta.json index e458bf8..a0123a0 100644 --- a/core/.mypy_cache/3.7/model.meta.json +++ b/core/.mypy_cache/3.7/model.meta.json @@ -1 +1 @@ -{"data_mtime": 1589324546, "dep_lines": [16, 17, 18, 19, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 273], "dep_prios": [10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 30, 30, 30, 30, 30, 30, 20], "dependencies": ["logging", "threading", "time", "urllib.request", "urllib", "sys", "os", "os.path", "shutil", "io", "json", "model_modules", "database", "dataset", "user", "encode", "hash", "utility", "typing", "api", "enum", "builtins", "_importlib_modulespec", "abc", "json.decoder", "model_modules.local_pandas", "model_modules.local_pandas.local_pandas", "types"], "hash": "d4849e0b168af209336fae718aa24be3", "id": "model", "ignore_all": false, "interface_hash": "7b12e2779bec9c72bc7d21f18fb5ce81", "mtime": 1589325241, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "model.py", "plugin_data": null, "size": 19147, "suppressed": ["MODEL"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1589401156, "dep_lines": [16, 17, 18, 19, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 273], "dep_prios": [10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 30, 30, 30, 30, 30, 30, 20], "dependencies": ["logging", "threading", "time", "urllib.request", "urllib", "sys", "os", "os.path", "shutil", "io", "json", "model_modules", "database", "dataset", "user", "encode", "hash", "utility", "typing", "api", "enum", "builtins", "_importlib_modulespec", "abc", "json.decoder", "model_modules.local_pandas", "model_modules.local_pandas.local_pandas", "types"], "hash": "338dd25de6c9cc0e71bd12725a0024dd", "id": "model", "ignore_all": false, "interface_hash": "83f561c7d405c360ed6d80546bb11cd6", "mtime": 1589401599, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "model.py", "plugin_data": null, "size": 19298, "suppressed": ["MODEL"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/__pycache__/model.cpython-37.pyc b/core/__pycache__/model.cpython-37.pyc index 794a7c990345ddd5d0472fdd3e514e395b42d790..0505e65b1d403b4b572a3dda531b006ac9305be7 100644 GIT binary patch delta 1702 zcmah}-%ndr9PcT;x3@sMmaZ!eEf$c%rKK$cBZ0|a%mN~eIUP%v(NOR0)>(R+bAicp z;s7^|@nL>nT;hX^^Tqfhq%nKY#TQ?F(r9v@{0lTO8eNRh@AtHHnwZ$+e(tyDe81=O z`Tn@)=lr*M&k47?*@nNrmcLlZ&+mIaR&GUHBQadjZCR$-vUbg>H|Y+|{;pkX(j0qI zR?;L*-m_(8jh(TniX|-=nqFFjUzL5Y0|PZ1F0)16fi`^Qiu&zn*z8wb!Y|1;$|{53 zTs^EGe7<&XH*U`0V^XZb+N#sdA2{Se{KJRfN6(Y}X)==p!vseOQV3S7IPi>annk0` z6V>yFK4WZ_4)qV<{xUxGLzN&OfOH}R&-ru~htGXGY#b)qK8ziw!^DXV0@cAOef|^y zN#`Tr@h`JXwcrmkHU_(gPq9(>=5Vs75yR)u&vF*a=K5->#Cs`tx@?@XN@%jn}Go~QoR$<*^x2yy6O@8xl%FDSNT?oFG4u@ zT8p5rQ+yPRxT!P;$}{j?up(!0g^$D2?GI3MCNxtEA!1bZPAJ+xOQy)3f-RZrYsRK- zIgxLpq?@XIpy-ECK&B31A^r&cvQ4V^BEflzvtP+ut%YJq&sA2pC_79=s1rFljEas~ zU*W}dox3RLGzCe|mkd*H2&VNMt+Rp{n;L{^`5Z!wVJF3y+MAtF?s!5zL0b#3-{Egj z$t(z0Y<)O*A5F6rL1Bv1d&u*M$M22uxM+Vz_$|3sIrt=;XKC<7cHEQbtJ--FzIX!O zixgM_oSiD-Q0GN9UcKE3)b_#Xmx)HzEysFsO}8Yor0W$bF1(7Tq2RJy)RGEW^Dww$a;xD2p69ZDXf1vOWdHo@fGqAvm~bD zD16;J=d;|kxvSKjMu-L`Vx3H?UWmns?2W#q?EjPTYs4rKllhS9VBTLL?rnls31|rT zb%Gt@lU_vgdsyj*rarzYTIg1X6*>{q&%mrY8WajBPHn0egu-(ooa*`jK2`VsHT*9O zJjVWnI|CrsMj6K9>akrqLE#<>ewdWdBZ?p~2u3yXA+7DM`*urAEzU?Ae-f-UR zqph}@Vim-T@u08^WjDLfA*=*1h6s8if>)y6ydZ+!cu|;$=)@bJ=Ok?>2p00|;XTjC z|2)rg&UdT7t=h+JwiX@!J&J#NmIc)nVMDbKTr%qz z!Hq4us8+66Smk-XndA%Lalc^|DI1|bba&aP97l??@U6RS%u?tKOn3f;S|>c&x{FAd zf_FUu>oggN3J${O9-ogKmRsuC%K6GQo+pEggduq1`F)Ax@CCvOLTkFUsjk< z4)1rZvpDGe5;Ec6V42!`eqcsXY6-pwxL`7H|0u}gfY&NUPINL3uI}gAAZ&Ce*(|Vj zC;aF&uyJ_U{WhD2Oi$q%A(ce(eu9B8PS~PJbdiz?hVqTLFf+#~#|1tHhdt{o3roSc zjXHoz#n@%x8?Uo=FL;ec%@TTLO7v6c*rbTt1aVez6G-K7<2(c{PAw7H63u~1ovNax%_BL$S2 z8>PcF&xr%w3+maQa7Q}$*YwXthS=Y*7Xi_ByivZWlzE*Zn7N&tPmV2w9#1tF!$3tn z%0*s$pK=-YaA|_O(TqckK|k$?e(j0oljc93YQEmw%B$i;(bzDSTaGRG>a$CZA`uPc z(L9VCpT}MMCH5=}43imI@MXk*JQJgdG2>Zb1pA2#9aFemZagN1Qf`AQH_BMSpAsSF z1#@z?KIlUATO`=d=w6oyKDxE k10KA3`vd7-dV0CI4<%ZS5w;1}2{#E<_+g;ZJZ}&D15NdFDgXcg diff --git a/core/model.py b/core/model.py index 624f819..ab7384b 100644 --- a/core/model.py +++ b/core/model.py @@ -69,13 +69,13 @@ class ModelReturnType(Enum): @description internal representation of a Model ''' class Model(): - def __init__(self, metadata: dict, dataframe: CoreDataFrame): + def __init__(self, metadata: dict, dataframe: CoreDataFrame = None): self.data: dict = metadata self.dataframe = dataframe pass def run(self): - store_model + # pass @@ -134,7 +134,7 @@ def execute(self): elif model_group_dataloader == ModelDataLoader.LOCAL_PANDAS_PARQUET.value: # TODO: parquet logic pass - + else: unsupported_dataloader_error_message: str = "encountered unsupported data loader: "+str(model_group_key) @@ -442,9 +442,11 @@ def verify_model_encodings(self): model_filename: str = str(component["filename"]) # cryptographically profile model - model_description: dict = ModelDescription(self.model, component).data() + #model_description: dict = ProfileModel(self.model, component).data() + #model_profile: dict = ProfileModel(model_data["model_name"]).profile() + model_profile: dict = ModelProfile(self.model, component).data() - if model_description["data_hash"].result == component["data_hash"]: + if model_profile["data_hash"].result == component["data_hash"]: logging.info("verify_model_encodings, Model is VALID: " + str( model_data["model_name"] ) ) logging.info("Valid Component: " + str(component["filename"]) ) diff --git a/core/storage/model_sessions.json b/core/storage/model_sessions.json index eaf74ea..99435fb 100644 --- a/core/storage/model_sessions.json +++ b/core/storage/model_sessions.json @@ -25,5 +25,5 @@ } ] }, - "timestamp": "2020-05-12 23:47:49" + "timestamp": "2020-05-13 16:31:01" } \ No newline at end of file From ceb715e466dd655da2a0b241566fe40d9ae37db3 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Sat, 23 May 2020 03:55:28 -0400 Subject: [PATCH 03/16] model library search is reaching backend, elastic search generic query working, refactored for differing DatasetSessions, some cleanup-v --- README.md | 22 +- core/.mypy_cache/3.7/api.meta.json | 2 +- core/.mypy_cache/3.7/core.data.json | 2 +- core/.mypy_cache/3.7/core.meta.json | 2 +- core/.mypy_cache/3.7/dataset.data.json | 2 +- core/.mypy_cache/3.7/dataset.meta.json | 2 +- core/.mypy_cache/3.7/dataset_test.data.json | 2 +- core/.mypy_cache/3.7/dataset_test.meta.json | 2 +- core/.mypy_cache/3.7/encode.meta.json | 2 +- core/.mypy_cache/3.7/model.data.json | 2 +- core/.mypy_cache/3.7/model.meta.json | 2 +- core/.mypy_cache/3.7/process.meta.json | 2 +- core/.mypy_cache/3.7/process_test.meta.json | 2 +- core/.mypy_cache/3.7/risk.data.json | 2 +- core/.mypy_cache/3.7/risk.meta.json | 2 +- core/.mypy_cache/3.7/test.meta.json | 2 +- core/.mypy_cache/3.7/user.data.json | 2 +- core/.mypy_cache/3.7/user.meta.json | 2 +- core/.mypy_cache/3.7/user_test.meta.json | 2 +- core/__pycache__/dataset.cpython-37.pyc | Bin 6767 -> 8754 bytes core/__pycache__/encode.cpython-37.pyc | Bin 2433 -> 2433 bytes core/__pycache__/model.cpython-37.pyc | Bin 12628 -> 13389 bytes core/__pycache__/process.cpython-37.pyc | Bin 3532 -> 3696 bytes core/__pycache__/user.cpython-37.pyc | Bin 5038 -> 5106 bytes core/core.py | 17 ++ core/dataset.py | 113 ++++++- core/model.py | 77 ++++- core/model_library/model_simple_re/MODEL.py | 14 + .../model_library/model_simple_re/__init__.py | 2 + .../model_simple_re_pyspark/MODEL.py | 14 + .../model_simple_re_pyspark/__init__.py | 2 + core/model_library/model_sk_pickle/MODEL.py | 14 + .../model_library/model_sk_pickle/__init__.py | 2 + core/model_library/model_tf_protobuf/MODEL.py | 14 + .../model_tf_protobuf/__init__.py | 2 + core/model_modules/__init__.py | 1 + core/model_modules/es/__init__.py | 1 + core/model_modules/es/es.py | 10 + .../local_pandas/local_pandas.py | 22 +- core/model_test.py | 29 ++ core/process.py | 36 ++- core/risk.py | 8 + core/rule.py | 14 + core/storage/model_sessions.json | 7 +- core/storage/models.json | 108 ++++++- core/storage/scheme.json | 47 ++- core/storage/settings.json | 5 + core/storage/users.json | 15 +- core/user.py | 46 ++- docs/INSTALL.md | 6 + interface/preload.js | 1 + interface/server.js | 18 +- .../Components/Common/SystemLog/SystemLog.js | 58 ++-- .../src/Components/Content/views/Home/Home.js | 221 +++----------- .../Components/Content/views/Models/Models.js | 284 ++++++++++++++---- 55 files changed, 906 insertions(+), 360 deletions(-) create mode 100644 core/model_library/model_simple_re/MODEL.py create mode 100644 core/model_library/model_simple_re/__init__.py create mode 100644 core/model_library/model_simple_re_pyspark/MODEL.py create mode 100644 core/model_library/model_simple_re_pyspark/__init__.py create mode 100644 core/model_library/model_sk_pickle/MODEL.py create mode 100644 core/model_library/model_sk_pickle/__init__.py create mode 100644 core/model_library/model_tf_protobuf/MODEL.py create mode 100644 core/model_library/model_tf_protobuf/__init__.py create mode 100644 core/model_modules/es/__init__.py create mode 100644 core/model_modules/es/es.py create mode 100644 core/model_test.py create mode 100644 core/rule.py create mode 100644 core/storage/settings.json diff --git a/README.md b/README.md index a45b558..9c3dc42 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,14 @@ # OpenUBA (Open User Behavior Analytics) A robust, and flexible open source User & Entity Behavior Analytics (UEBA) framework used for Security Analytics. Developed with luv by Data Scientists & Security Analysts from the Cyber Security Industry. +## Problem +Many UBA platforms typically use a "black box" approach to data science practices, which may work best for security analysts who are not interested in the nuts and bolts of the underlying models being used to generate anomalies, baselines, and cases. These platforms view their models as IP. + +# solution +OUBA takes an "open-model" approach, and is designed for the small subset of security analysts who have authentic curiosity about what models are doing, and how they work under the hood. We believe in the scientific computing community, and its contributions over the years (libraries, toolkits, etc). In security, rule/model transparency is key, for compliance, response/investigation, and decision making. + +To take it a step further, OUBA also makes use of a community driven marketplace for models, similar to a plugin-store, where plugins are security models. This marketplace is where users of OUBA can install security models for their own use cases. Model developers can also upload their models, enabling other OUBA users to reuse them, whether for free, or compensation -- the choice is up to the model developer to make. + *This project is a work in progress and in a pre-alpha state; input and contributions are warmly welcome* | Status Type | Status | @@ -33,7 +41,7 @@ A robust, and flexible open source User & Entity Behavior Analytics (UEBA) frame To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: - Modeling - Model Management - - Community-driven Model Library + - Model Library (both community/internally driven) - Model Version Control - Ready-to-use model modules - Feedback Loop for continuous model training @@ -41,6 +49,9 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: - Simple model configuration workflow - Model groups - Single-fire & Sequential models + - "White-box" model standard +- Rule Engine + - Single-fire & deviation-based rules - Dashboard - Modern stack - Modular components @@ -92,28 +103,27 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: The interface is meant to observe system events, and anomalies - ## Views - Dashboard (index) +- Models - Anomalies - Cases -- Modeling - Settings # Model Library -OpenUBA implements a model library purposed with hosting ready-to-use models, both developed by us, and the community. For starters, we host the default model repository, similar to any popular package manager (npm, cargo, etc). However, developers can host their own model repository for use in their own instance of OpenUBA. +OpenUBA implements a model library purposed with hosting "ready-to-use" models, both developed by us, and the community. For starters, we host the default model repository, similar to any popular package manager (npm, cargo, etc). However, developers can host their own model repository for use in their own instance of OpenUBA. Model installation currently works as follows: - ## Installation/Usage Go to [INSTALL.md](https://github.com/GACWR/OpenUBA/blob/master/docs/INSTALL.md) - ## Get the updated code & documentation on XS code [here](https://cp.xscode.com/GACWR/OpenUBA) Our main development, and documentation branches are first pushed to our sponsorship repository, and then eventually pushed to our public free repository. To obtain the most updated code, and documentation for OpenUBA, subscribe to our XS Code repository. +## Twitter +http://twitter.com/OpenUBA ## Discord (Main Server, and Dev Chat) Discord Server: https://discord.gg/Ps9p9Wy diff --git a/core/.mypy_cache/3.7/api.meta.json b/core/.mypy_cache/3.7/api.meta.json index bc275e7..27d367a 100644 --- a/core/.mypy_cache/3.7/api.meta.json +++ b/core/.mypy_cache/3.7/api.meta.json @@ -1 +1 @@ -{"data_mtime": 1587529195, "dep_lines": [16, 17, 18, 19, 20, 21, 22, 23, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 5, 5, 10, 10, 5, 30, 30, 30, 30], "dependencies": ["logging", "entity", "user", "enum", "display", "typing", "requests", "json", "builtins", "abc", "database", "json.encoder", "requests.models"], "hash": "098e9deec1c9ac21b880dfc19daebc92", "id": "api", "ignore_all": false, "interface_hash": "46a418b7569afd0dec40bea940888dff", "mtime": 1588890541, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "api.py", "plugin_data": null, "size": 3311, "suppressed": [], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219478, "dep_lines": [16, 17, 18, 19, 20, 21, 22, 23, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 5, 5, 10, 10, 5, 30, 30, 30, 30, 30], "dependencies": ["logging", "entity", "user", "enum", "display", "typing", "requests", "json", "builtins", "abc", "database", "json.encoder", "requests.models", "types"], "hash": "098e9deec1c9ac21b880dfc19daebc92", "id": "api", "ignore_all": false, "interface_hash": "46a418b7569afd0dec40bea940888dff", "mtime": 1588890541, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "api.py", "plugin_data": null, "size": 3311, "suppressed": [], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/core.data.json b/core/.mypy_cache/3.7/core.data.json index 5d35d13..66d84ce 100644 --- a/core/.mypy_cache/3.7/core.data.json +++ b/core/.mypy_cache/3.7/core.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "core", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "API": {".class": "SymbolTableNode", "cross_ref": "api.API", "kind": "Gdef"}, "CORS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "core.CORS", "name": "CORS", "type": {".class": "AnyType", "missing_import_name": "core.CORS", "source_any": null, "type_of_any": 3}}}, "Core": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "core.Core", "name": "Core", "type_vars": []}, "flags": [], "fullname": "core.Core", "metaclass_type": null, "metadata": {}, "module_name": "core", "mro": ["core.Core", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.__init__", "name": "__init__", "type": null}}, "display": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "core.Core.display", "name": "display", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "initiate": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.initiate", "name": "initiate", "type": null}}, "run_display_information_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.run_display_information_job", "name": "run_display_information_job", "type": null}}, "run_scheduler_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.run_scheduler_job", "name": "run_scheduler_job", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Display": {".class": "SymbolTableNode", "cross_ref": "display.Display", "kind": "Gdef"}, "Flask": {".class": "SymbolTableNode", "cross_ref": "flask.app.Flask", "kind": "Gdef"}, "ModelEngine": {".class": "SymbolTableNode", "cross_ref": "model.ModelEngine", "kind": "Gdef"}, "ModelLibrary": {".class": "SymbolTableNode", "cross_ref": "model.ModelLibrary", "kind": "Gdef"}, "ProcessEngine": {".class": "SymbolTableNode", "cross_ref": "process.ProcessEngine", "kind": "Gdef"}, "ProfileModel": {".class": "SymbolTableNode", "cross_ref": "model.ProfileModel", "kind": "Gdef"}, "Test": {".class": "SymbolTableNode", "cross_ref": "test.Test", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__package__", "name": "__package__", "type": "builtins.str"}}, "coloredlogs": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "core.coloredlogs", "name": "coloredlogs", "type": {".class": "AnyType", "missing_import_name": "core.coloredlogs", "source_any": null, "type_of_any": 3}}}, "component": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": [], "fullname": "core.component", "name": "component", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}}}, "core": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.core", "name": "core", "type": "core.Core"}}, "delete_model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["model_name"], "flags": ["is_decorated"], "fullname": "core.delete_model", "name": "delete_model", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "delete_model", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["model_name"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "delete_model", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "display": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["display_type"], "flags": ["is_decorated"], "fullname": "core.display", "name": "display", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "display", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["display_type"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "display", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "install_model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["model_name"], "flags": ["is_decorated"], "fullname": "core.install_model", "name": "install_model", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["model_name"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "install_model", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "jsonify": {".class": "SymbolTableNode", "cross_ref": "flask.json.jsonify", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_name": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_name", "name": "model_name", "type": "builtins.str"}}, "model_profile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_profile", "name": "model_profile", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "model_to_update": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_to_update", "name": "model_to_update", "type": "builtins.str"}}, "profile_for_model_to_update": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.profile_for_model_to_update", "name": "profile_for_model_to_update", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "scheduler_run": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["name"], "flags": [], "fullname": "core.scheduler_run", "name": "scheduler_run", "type": null}}, "server": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": [], "fullname": "core.server", "name": "server", "type": "flask.app.Flask"}}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "trace": {".class": "SymbolTableNode", "cross_ref": "trace", "kind": "Gdef"}, "unittest": {".class": "SymbolTableNode", "cross_ref": "unittest", "kind": "Gdef"}}, "path": "core.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "core", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "API": {".class": "SymbolTableNode", "cross_ref": "api.API", "kind": "Gdef"}, "CORS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "core.CORS", "name": "CORS", "type": {".class": "AnyType", "missing_import_name": "core.CORS", "source_any": null, "type_of_any": 3}}}, "Core": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "core.Core", "name": "Core", "type_vars": []}, "flags": [], "fullname": "core.Core", "metaclass_type": null, "metadata": {}, "module_name": "core", "mro": ["core.Core", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.__init__", "name": "__init__", "type": null}}, "display": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "core.Core.display", "name": "display", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "initiate": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.initiate", "name": "initiate", "type": null}}, "run_display_information_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.run_display_information_job", "name": "run_display_information_job", "type": null}}, "run_scheduler_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "core.Core.run_scheduler_job", "name": "run_scheduler_job", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Display": {".class": "SymbolTableNode", "cross_ref": "display.Display", "kind": "Gdef"}, "Flask": {".class": "SymbolTableNode", "cross_ref": "flask.app.Flask", "kind": "Gdef"}, "ModelEngine": {".class": "SymbolTableNode", "cross_ref": "model.ModelEngine", "kind": "Gdef"}, "ModelLibrary": {".class": "SymbolTableNode", "cross_ref": "model.ModelLibrary", "kind": "Gdef"}, "ProcessEngine": {".class": "SymbolTableNode", "cross_ref": "process.ProcessEngine", "kind": "Gdef"}, "ProfileModel": {".class": "SymbolTableNode", "cross_ref": "model.ProfileModel", "kind": "Gdef"}, "Test": {".class": "SymbolTableNode", "cross_ref": "test.Test", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.__package__", "name": "__package__", "type": "builtins.str"}}, "coloredlogs": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "core.coloredlogs", "name": "coloredlogs", "type": {".class": "AnyType", "missing_import_name": "core.coloredlogs", "source_any": null, "type_of_any": 3}}}, "component": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": [], "fullname": "core.component", "name": "component", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}}}, "core": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.core", "name": "core", "type": "core.Core"}}, "delete_model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["model_name"], "flags": ["is_decorated"], "fullname": "core.delete_model", "name": "delete_model", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "delete_model", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["model_name"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "delete_model", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "display": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["display_type"], "flags": ["is_decorated"], "fullname": "core.display", "name": "display", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "display", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["display_type"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "display", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "fetch_models": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [], "arg_names": [], "flags": ["is_decorated"], "fullname": "core.fetch_models", "name": "fetch_models", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "fetch_models", "type": {".class": "CallableType", "arg_kinds": [], "arg_names": [], "arg_types": [], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "fetch_models", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "fetch_specific_model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["model_name"], "flags": ["is_decorated"], "fullname": "core.fetch_specific_model", "name": "fetch_specific_model", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "fetch_specific_model", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["model_name"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "fetch_specific_model", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "install_model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["model_name"], "flags": ["is_decorated"], "fullname": "core.install_model", "name": "install_model", "type": null}, "is_overload": false, "var": {".class": "Var", "flags": ["is_ready"], "fullname": null, "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["model_name"], "arg_types": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {}, "fallback": "builtins.function", "implicit": true, "is_ellipsis_args": false, "name": "install_model", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "jsonify": {".class": "SymbolTableNode", "cross_ref": "flask.json.jsonify", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_name": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_name", "name": "model_name", "type": "builtins.str"}}, "model_profile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_profile", "name": "model_profile", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "model_to_update": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.model_to_update", "name": "model_to_update", "type": "builtins.str"}}, "profile_for_model_to_update": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "core.profile_for_model_to_update", "name": "profile_for_model_to_update", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "scheduler_run": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["name"], "flags": [], "fullname": "core.scheduler_run", "name": "scheduler_run", "type": null}}, "server": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": [], "fullname": "core.server", "name": "server", "type": "flask.app.Flask"}}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "trace": {".class": "SymbolTableNode", "cross_ref": "trace", "kind": "Gdef"}, "unittest": {".class": "SymbolTableNode", "cross_ref": "unittest", "kind": "Gdef"}}, "path": "core.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/core.meta.json b/core/.mypy_cache/3.7/core.meta.json index e6881fd..b8f5796 100644 --- a/core/.mypy_cache/3.7/core.meta.json +++ b/core/.mypy_cache/3.7/core.meta.json @@ -1 +1 @@ -{"data_mtime": 1589323988, "dep_lines": [21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 33, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 22, 34], "dep_prios": [5, 10, 10, 10, 5, 5, 5, 5, 5, 10, 10, 10, 5, 30, 30, 30, 30, 30, 30, 30, 30, 30, 5, 10], "dependencies": ["flask", "logging", "threading", "time", "model", "test", "process", "api", "display", "unittest", "trace", "sys", "builtins", "abc", "flask.app", "flask.helpers", "flask.json", "flask.wrappers", "types", "typing", "werkzeug", "werkzeug.wrappers"], "hash": "db04b1b93d39ddab75b28e809b09a276", "id": "core", "ignore_all": false, "interface_hash": "dc34ae40aaef734a42a2d43bbbccea51", "mtime": 1589323979, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "core.py", "plugin_data": null, "size": 5178, "suppressed": ["flask_cors", "coloredlogs"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219554, "dep_lines": [21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 33, 1, 1, 1, 1, 1, 1, 1, 22, 34], "dep_prios": [5, 10, 10, 10, 5, 5, 5, 5, 5, 10, 10, 10, 5, 30, 30, 30, 30, 30, 30, 5, 10], "dependencies": ["flask", "logging", "threading", "time", "model", "test", "process", "api", "display", "unittest", "trace", "sys", "builtins", "abc", "flask.app", "flask.helpers", "flask.json", "types", "typing"], "hash": "e9bc7f8df654ea5ae5fbadf7697938c9", "id": "core", "ignore_all": false, "interface_hash": "ad2ac45ed9e95279f9cce0492273b787", "mtime": 1590218114, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "core.py", "plugin_data": null, "size": 5556, "suppressed": ["flask_cors", "coloredlogs"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/dataset.data.json b/core/.mypy_cache/3.7/dataset.data.json index baabede..527ad13 100644 --- a/core/.mypy_cache/3.7/dataset.data.json +++ b/core/.mypy_cache/3.7/dataset.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "dataset", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "CSV": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.CSV", "name": "CSV", "type_vars": []}, "flags": [], "fullname": "dataset.CSV", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.CSV", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.CSV.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.CSV", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CSV.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "delimiter": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CSV.delimiter", "name": "delimiter", "type": "builtins.str"}}, "get_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CSV.get_size", "name": "get_size", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_size of CSV", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.tuple"}, "variables": []}}}, "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CSV.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_from_disk": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.CSV.read_from_disk", "name": "read_from_disk", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_disk of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_disk", "type": "dataset.DatasetLogPrior"}}}, "read_from_hdfs": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.CSV.read_from_hdfs", "name": "read_from_hdfs", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_hdfs of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_hdfs", "type": "dataset.DatasetLogPrior"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "CoreDataFrame": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.CoreDataFrame", "name": "CoreDataFrame", "type_vars": []}, "flags": [], "fullname": "dataset.CoreDataFrame", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.CoreDataFrame", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "df"], "flags": [], "fullname": "dataset.CoreDataFrame.__init__", "name": "__init__", "type": null}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CoreDataFrame.data", "name": "data", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "get_unique_id_set": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CoreDataFrame.get_unique_id_set", "name": "get_unique_id_set", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_unique_id_set of CoreDataFrame", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dataset": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Parser"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Dataset", "name": "Dataset", "type_vars": []}, "flags": [], "fullname": "dataset.Dataset", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "flags": [], "fullname": "dataset.Dataset.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "arg_types": ["dataset.Dataset", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Dataset", "ret_type": {".class": "NoneType"}, "variables": []}}}, "file_location": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.Dataset.file_location", "name": "file_location", "type": "builtins.str"}}, "get_dataframe": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Dataset.get_dataframe", "name": "get_dataframe", "type": null}}, "location_type": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.Dataset.location_type", "name": "location_type", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetLogPrior": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.DatasetLogPrior", "name": "DatasetLogPrior", "type_vars": []}, "flags": [], "fullname": "dataset.DatasetLogPrior", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.DatasetLogPrior", "builtins.object"], "names": {".class": "SymbolTable", "__call__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "flags": [], "fullname": "dataset.DatasetLogPrior.__call__", "name": "__call__", "type": {".class": "CallableType", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "arg_types": ["dataset.DatasetLogPrior", {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__call__ of DatasetLogPrior", "ret_type": {".class": "NoneType"}, "variables": []}}}, "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "function"], "flags": [], "fullname": "dataset.DatasetLogPrior.__init__", "name": "__init__", "type": null}}, "function": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.DatasetLogPrior.function", "name": "function", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.DatasetSession", "name": "DatasetSession", "type_vars": []}, "flags": [], "fullname": "dataset.DatasetSession", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.DatasetSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "flags": [], "fullname": "dataset.DatasetSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "arg_types": ["dataset.DatasetSession", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.dataset", "name": "dataset", "type": "dataset.CSV"}}, "dataset_type": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.dataset_type", "name": "dataset_type", "type": "builtins.str"}}, "get_dataset": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.DatasetSession.get_dataset", "name": "get_dataset", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.DatasetSession"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_dataset of DatasetSession", "ret_type": "dataset.Dataset", "variables": []}}}, "get_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.DatasetSession.get_size", "name": "get_size", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.DatasetSession"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_size of DatasetSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.tuple"}, "variables": []}}}, "read_csv": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.DatasetSession.read_csv", "name": "read_csv", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_csv of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dict": {".class": "SymbolTableNode", "cross_ref": "typing.Dict", "kind": "Gdef"}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "LogSourceType": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.LogSourceType", "name": "LogSourceType", "type_vars": []}, "flags": ["is_enum"], "fullname": "dataset.LogSourceType", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "dataset", "mro": ["dataset.LogSourceType", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "DISK": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.DISK", "name": "DISK", "type": "builtins.str"}}, "ES": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.ES", "name": "ES", "type": "builtins.str"}}, "HDFS": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.HDFS", "name": "HDFS", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Parser": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Parser", "name": "Parser", "type_vars": []}, "flags": [], "fullname": "dataset.Parser", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parser.__init__", "name": "__init__", "type": null}}, "split_record": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "record", "sep"], "flags": ["is_decorated"], "fullname": "dataset.Parser.split_record", "name": "split_record", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "record", "sep"], "arg_types": ["dataset.Parser", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "split_record of Parser", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "split_record", "type": "dataset.PriorSplitRecord"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "PriorSplitRecord": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.PriorSplitRecord", "name": "PriorSplitRecord", "type_vars": []}, "flags": [], "fullname": "dataset.PriorSplitRecord", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.PriorSplitRecord", "builtins.object"], "names": {".class": "SymbolTable", "__call__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "flags": [], "fullname": "dataset.PriorSplitRecord.__call__", "name": "__call__", "type": {".class": "CallableType", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "arg_types": ["dataset.PriorSplitRecord", {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__call__ of PriorSplitRecord", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}}, "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "function"], "flags": [], "fullname": "dataset.PriorSplitRecord.__init__", "name": "__init__", "type": null}}, "function": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.PriorSplitRecord.function", "name": "function", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Sequence": {".class": "SymbolTableNode", "cross_ref": "typing.Sequence", "kind": "Gdef"}, "Tuple": {".class": "SymbolTableNode", "cross_ref": "typing.Tuple", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__package__", "name": "__package__", "type": "builtins.str"}}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "np": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset.np", "name": "np", "type": {".class": "AnyType", "missing_import_name": "dataset.np", "source_any": null, "type_of_any": 3}}}, "pd": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset.pd", "name": "pd", "type": {".class": "AnyType", "missing_import_name": "dataset.pd", "source_any": null, "type_of_any": 3}}}}, "path": "dataset.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "dataset", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "CSV": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.CSV", "name": "CSV", "type_vars": []}, "flags": [], "fullname": "dataset.CSV", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.CSV", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.CSV.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.CSV", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CSV.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "delimiter": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CSV.delimiter", "name": "delimiter", "type": "builtins.str"}}, "get_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CSV.get_size", "name": "get_size", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_size of CSV", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.tuple"}, "variables": []}}}, "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CSV.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_from_disk": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.CSV.read_from_disk", "name": "read_from_disk", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_disk of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_disk", "type": "dataset.DatasetReadFromDiskPrior"}}}, "read_from_hdfs": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.CSV.read_from_hdfs", "name": "read_from_hdfs", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_hdfs of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_hdfs", "type": "dataset.DatasetReadFromDiskPrior"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "CoreDataFrame": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.CoreDataFrame", "name": "CoreDataFrame", "type_vars": []}, "flags": [], "fullname": "dataset.CoreDataFrame", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.CoreDataFrame", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "df"], "flags": [], "fullname": "dataset.CoreDataFrame.__init__", "name": "__init__", "type": null}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CoreDataFrame.data", "name": "data", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "get_unique_id_set": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CoreDataFrame.get_unique_id_set", "name": "get_unique_id_set", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_unique_id_set of CoreDataFrame", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dataset": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Parser"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Dataset", "name": "Dataset", "type_vars": []}, "flags": [], "fullname": "dataset.Dataset", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "flags": [], "fullname": "dataset.Dataset.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "arg_types": ["dataset.Dataset", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Dataset", "ret_type": {".class": "NoneType"}, "variables": []}}}, "file_location": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.Dataset.file_location", "name": "file_location", "type": "builtins.str"}}, "get_dataframe": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Dataset.get_dataframe", "name": "get_dataframe", "type": null}}, "location_type": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.Dataset.location_type", "name": "location_type", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetReadFromDiskPrior": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.DatasetReadFromDiskPrior", "name": "DatasetReadFromDiskPrior", "type_vars": []}, "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.DatasetReadFromDiskPrior", "builtins.object"], "names": {".class": "SymbolTable", "__call__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior.__call__", "name": "__call__", "type": {".class": "CallableType", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "arg_types": ["dataset.DatasetReadFromDiskPrior", {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__call__ of DatasetReadFromDiskPrior", "ret_type": {".class": "NoneType"}, "variables": []}}}, "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "function"], "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior.__init__", "name": "__init__", "type": null}}, "function": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior.function", "name": "function", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.DatasetSession", "name": "DatasetSession", "type_vars": []}, "flags": [], "fullname": "dataset.DatasetSession", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.DatasetSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "flags": [], "fullname": "dataset.DatasetSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "arg_types": ["dataset.DatasetSession", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "csv_dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.csv_dataset", "name": "csv_dataset", "type": "dataset.CSV"}}, "dataset_type": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.dataset_type", "name": "dataset_type", "type": "builtins.str"}}, "es_dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.es_dataset", "name": "es_dataset", "type": "dataset.ES"}}, "get_csv_dataset": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.DatasetSession.get_csv_dataset", "name": "get_csv_dataset", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.DatasetSession"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_csv_dataset of DatasetSession", "ret_type": "dataset.Dataset", "variables": []}}}, "get_csv_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.DatasetSession.get_csv_size", "name": "get_csv_size", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.DatasetSession"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_csv_size of DatasetSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.tuple"}, "variables": []}}}, "parquet_dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.parquet_dataset", "name": "parquet_dataset", "type": "dataset.CSV"}}, "read_csv": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.DatasetSession.read_csv", "name": "read_csv", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_csv of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_es_index": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "host", "query"], "flags": [], "fullname": "dataset.DatasetSession.read_es_index", "name": "read_es_index", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "host", "query"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_es_index of DatasetSession", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "read_parquet": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.DatasetSession.read_parquet", "name": "read_parquet", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_parquet of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dict": {".class": "SymbolTableNode", "cross_ref": "typing.Dict", "kind": "Gdef"}, "ES": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.ES", "name": "ES", "type_vars": []}, "flags": [], "fullname": "dataset.ES", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.ES", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "host"], "flags": [], "fullname": "dataset.ES.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "host"], "arg_types": ["dataset.ES", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ES", "ret_type": {".class": "NoneType"}, "variables": []}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.ES.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "header_set": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.ES.header_set", "name": "header_set", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "host": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.ES.host", "name": "host", "type": "builtins.str"}}, "payload": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.ES.payload", "name": "payload", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.ES.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.ES"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of ES", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "LogSourceType": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.LogSourceType", "name": "LogSourceType", "type_vars": []}, "flags": ["is_enum"], "fullname": "dataset.LogSourceType", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "dataset", "mro": ["dataset.LogSourceType", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "DISK": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.DISK", "name": "DISK", "type": "builtins.str"}}, "ES": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.ES", "name": "ES", "type": "builtins.str"}}, "HDFS": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.HDFS", "name": "HDFS", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Parquet": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Parquet", "name": "Parquet", "type_vars": []}, "flags": [], "fullname": "dataset.Parquet", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Parquet", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parquet.__init__", "name": "__init__", "type": null}}, "read_from_disk": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parquet.read_from_disk", "name": "read_from_disk", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.Parquet"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_disk of Parquet", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_from_hdfs": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parquet.read_from_hdfs", "name": "read_from_hdfs", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.Parquet"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_hdfs of Parquet", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Parser": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Parser", "name": "Parser", "type_vars": []}, "flags": [], "fullname": "dataset.Parser", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parser.__init__", "name": "__init__", "type": null}}, "split_record": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "record", "sep"], "flags": ["is_decorated"], "fullname": "dataset.Parser.split_record", "name": "split_record", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "record", "sep"], "arg_types": ["dataset.Parser", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "split_record of Parser", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "split_record", "type": "dataset.PriorSplitRecord"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "PriorSplitRecord": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.PriorSplitRecord", "name": "PriorSplitRecord", "type_vars": []}, "flags": [], "fullname": "dataset.PriorSplitRecord", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.PriorSplitRecord", "builtins.object"], "names": {".class": "SymbolTable", "__call__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "flags": [], "fullname": "dataset.PriorSplitRecord.__call__", "name": "__call__", "type": {".class": "CallableType", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "arg_types": ["dataset.PriorSplitRecord", {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__call__ of PriorSplitRecord", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}}, "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "function"], "flags": [], "fullname": "dataset.PriorSplitRecord.__init__", "name": "__init__", "type": null}}, "function": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.PriorSplitRecord.function", "name": "function", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Sequence": {".class": "SymbolTableNode", "cross_ref": "typing.Sequence", "kind": "Gdef"}, "Tuple": {".class": "SymbolTableNode", "cross_ref": "typing.Tuple", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__package__", "name": "__package__", "type": "builtins.str"}}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "np": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset.np", "name": "np", "type": {".class": "AnyType", "missing_import_name": "dataset.np", "source_any": null, "type_of_any": 3}}}, "pd": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset.pd", "name": "pd", "type": {".class": "AnyType", "missing_import_name": "dataset.pd", "source_any": null, "type_of_any": 3}}}, "requests": {".class": "SymbolTableNode", "cross_ref": "requests", "kind": "Gdef"}}, "path": "dataset.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/dataset.meta.json b/core/.mypy_cache/3.7/dataset.meta.json index 2ab03c5..6ca3626 100644 --- a/core/.mypy_cache/3.7/dataset.meta.json +++ b/core/.mypy_cache/3.7/dataset.meta.json @@ -1 +1 @@ -{"data_mtime": 1587530566, "dep_lines": [21, 24, 25, 1, 1, 1, 22, 23], "dep_prios": [10, 5, 5, 5, 30, 30, 10, 10], "dependencies": ["logging", "typing", "enum", "builtins", "abc", "types"], "hash": "f946d34cac2783afec7ecd31afac01f8", "id": "dataset", "ignore_all": false, "interface_hash": "abca2bf43c06b930952ba29a520a71a8", "mtime": 1587530563, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "dataset.py", "plugin_data": null, "size": 7111, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219960, "dep_lines": [21, 24, 25, 26, 27, 1, 1, 1, 1, 1, 22, 23], "dep_prios": [10, 5, 5, 10, 10, 5, 30, 30, 30, 30, 10, 10], "dependencies": ["logging", "typing", "enum", "requests", "json", "builtins", "abc", "json.encoder", "requests.models", "types"], "hash": "2d020fc2d869f04fcd729004d0f3ace0", "id": "dataset", "ignore_all": false, "interface_hash": "40315c56721032abccd4a364d5126b58", "mtime": 1590219951, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "dataset.py", "plugin_data": null, "size": 9477, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/dataset_test.data.json b/core/.mypy_cache/3.7/dataset_test.data.json index 30da829..d609862 100644 --- a/core/.mypy_cache/3.7/dataset_test.data.json +++ b/core/.mypy_cache/3.7/dataset_test.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "dataset_test", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "CSV": {".class": "SymbolTableNode", "cross_ref": "dataset.CSV", "kind": "Gdef"}, "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "Dataset": {".class": "SymbolTableNode", "cross_ref": "dataset.Dataset", "kind": "Gdef"}, "DatasetCSVLocationTestCase": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["unittest.case.TestCase"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset_test.DatasetCSVLocationTestCase", "name": "DatasetCSVLocationTestCase", "type_vars": []}, "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase", "metaclass_type": null, "metadata": {}, "module_name": "dataset_test", "mro": ["dataset_test.DatasetCSVLocationTestCase", "unittest.case.TestCase", "builtins.object"], "names": {".class": "SymbolTable", "csv": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.csv", "name": "csv", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "folder": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.folder", "name": "folder", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "location_type": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.location_type", "name": "location_type", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "parent_folder": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.parent_folder", "name": "parent_folder", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "setUp": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.setUp", "name": "setUp", "type": null}}, "test_csv_init": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.test_csv_init", "name": "test_csv_init", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetLogPrior": {".class": "SymbolTableNode", "cross_ref": "dataset.DatasetLogPrior", "kind": "Gdef"}, "DatasetSession": {".class": "SymbolTableNode", "cross_ref": "dataset.DatasetSession", "kind": "Gdef"}, "DatasetSessionDataFrameShapeTestCase": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["unittest.case.TestCase"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase", "name": "DatasetSessionDataFrameShapeTestCase", "type_vars": []}, "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase", "metaclass_type": null, "metadata": {}, "module_name": "dataset_test", "mro": ["dataset_test.DatasetSessionDataFrameShapeTestCase", "unittest.case.TestCase", "builtins.object"], "names": {".class": "SymbolTable", "dataset_session": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase.dataset_session", "name": "dataset_session", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "setUp": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase.setUp", "name": "setUp", "type": null}}, "test_get_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase.test_get_size", "name": "test_get_size", "type": null}}, "test_read_csv": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase.test_read_csv", "name": "test_read_csv", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dict": {".class": "SymbolTableNode", "cross_ref": "typing.Dict", "kind": "Gdef"}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "LogSourceType": {".class": "SymbolTableNode", "cross_ref": "dataset.LogSourceType", "kind": "Gdef"}, "MagicMock": {".class": "SymbolTableNode", "cross_ref": "unittest.mock.MagicMock", "kind": "Gdef"}, "Parser": {".class": "SymbolTableNode", "cross_ref": "dataset.Parser", "kind": "Gdef"}, "PriorSplitRecord": {".class": "SymbolTableNode", "cross_ref": "dataset.PriorSplitRecord", "kind": "Gdef"}, "Sequence": {".class": "SymbolTableNode", "cross_ref": "typing.Sequence", "kind": "Gdef"}, "Tuple": {".class": "SymbolTableNode", "cross_ref": "typing.Tuple", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset_test.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset_test.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset_test.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset_test.__package__", "name": "__package__", "type": "builtins.str"}}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "np": {".class": "SymbolTableNode", "cross_ref": "dataset.np", "kind": "Gdef"}, "pd": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset_test.pd", "name": "pd", "type": {".class": "AnyType", "missing_import_name": "dataset_test.pd", "source_any": null, "type_of_any": 3}}}, "unittest": {".class": "SymbolTableNode", "cross_ref": "unittest", "kind": "Gdef"}}, "path": "./dataset_test.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "dataset_test", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "CSV": {".class": "SymbolTableNode", "cross_ref": "dataset.CSV", "kind": "Gdef"}, "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "Dataset": {".class": "SymbolTableNode", "cross_ref": "dataset.Dataset", "kind": "Gdef"}, "DatasetCSVLocationTestCase": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["unittest.case.TestCase"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset_test.DatasetCSVLocationTestCase", "name": "DatasetCSVLocationTestCase", "type_vars": []}, "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase", "metaclass_type": null, "metadata": {}, "module_name": "dataset_test", "mro": ["dataset_test.DatasetCSVLocationTestCase", "unittest.case.TestCase", "builtins.object"], "names": {".class": "SymbolTable", "csv": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.csv", "name": "csv", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "folder": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.folder", "name": "folder", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "location_type": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.location_type", "name": "location_type", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "parent_folder": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.parent_folder", "name": "parent_folder", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "setUp": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.setUp", "name": "setUp", "type": null}}, "test_csv_init": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetCSVLocationTestCase.test_csv_init", "name": "test_csv_init", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetReadFromDiskPrior": {".class": "SymbolTableNode", "cross_ref": "dataset.DatasetReadFromDiskPrior", "kind": "Gdef"}, "DatasetSession": {".class": "SymbolTableNode", "cross_ref": "dataset.DatasetSession", "kind": "Gdef"}, "DatasetSessionDataFrameShapeTestCase": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["unittest.case.TestCase"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase", "name": "DatasetSessionDataFrameShapeTestCase", "type_vars": []}, "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase", "metaclass_type": null, "metadata": {}, "module_name": "dataset_test", "mro": ["dataset_test.DatasetSessionDataFrameShapeTestCase", "unittest.case.TestCase", "builtins.object"], "names": {".class": "SymbolTable", "dataset_session": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase.dataset_session", "name": "dataset_session", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "setUp": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase.setUp", "name": "setUp", "type": null}}, "test_get_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase.test_get_size", "name": "test_get_size", "type": null}}, "test_read_csv": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset_test.DatasetSessionDataFrameShapeTestCase.test_read_csv", "name": "test_read_csv", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dict": {".class": "SymbolTableNode", "cross_ref": "typing.Dict", "kind": "Gdef"}, "ES": {".class": "SymbolTableNode", "cross_ref": "dataset.ES", "kind": "Gdef"}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "LogSourceType": {".class": "SymbolTableNode", "cross_ref": "dataset.LogSourceType", "kind": "Gdef"}, "MagicMock": {".class": "SymbolTableNode", "cross_ref": "unittest.mock.MagicMock", "kind": "Gdef"}, "Parquet": {".class": "SymbolTableNode", "cross_ref": "dataset.Parquet", "kind": "Gdef"}, "Parser": {".class": "SymbolTableNode", "cross_ref": "dataset.Parser", "kind": "Gdef"}, "PriorSplitRecord": {".class": "SymbolTableNode", "cross_ref": "dataset.PriorSplitRecord", "kind": "Gdef"}, "Sequence": {".class": "SymbolTableNode", "cross_ref": "typing.Sequence", "kind": "Gdef"}, "Tuple": {".class": "SymbolTableNode", "cross_ref": "typing.Tuple", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset_test.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset_test.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset_test.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset_test.__package__", "name": "__package__", "type": "builtins.str"}}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "np": {".class": "SymbolTableNode", "cross_ref": "dataset.np", "kind": "Gdef"}, "pd": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset_test.pd", "name": "pd", "type": {".class": "AnyType", "missing_import_name": "dataset_test.pd", "source_any": null, "type_of_any": 3}}}, "requests": {".class": "SymbolTableNode", "cross_ref": "requests", "kind": "Gdef"}, "unittest": {".class": "SymbolTableNode", "cross_ref": "unittest", "kind": "Gdef"}}, "path": "./dataset_test.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/dataset_test.meta.json b/core/.mypy_cache/3.7/dataset_test.meta.json index b01dceb..8efbb82 100644 --- a/core/.mypy_cache/3.7/dataset_test.meta.json +++ b/core/.mypy_cache/3.7/dataset_test.meta.json @@ -1 +1 @@ -{"data_mtime": 1587530566, "dep_lines": [17, 19, 20, 21, 24, 1, 1, 1, 18], "dep_prios": [10, 5, 10, 5, 5, 5, 30, 30, 10], "dependencies": ["unittest", "dataset", "logging", "typing", "unittest.mock", "builtins", "abc", "unittest.case"], "hash": "f1dc9c9ea7251fc238b93a2dadc4ced8", "id": "dataset_test", "ignore_all": false, "interface_hash": "f12884d16427462f8068c03ac2844bbd", "mtime": 1587530922, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./dataset_test.py", "plugin_data": null, "size": 2317, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219001, "dep_lines": [17, 19, 20, 21, 24, 1, 1, 1, 1, 1, 18], "dep_prios": [10, 5, 10, 5, 5, 5, 20, 20, 30, 30, 10], "dependencies": ["unittest", "dataset", "logging", "typing", "unittest.mock", "builtins", "json", "requests", "abc", "unittest.case"], "hash": "f1dc9c9ea7251fc238b93a2dadc4ced8", "id": "dataset_test", "ignore_all": false, "interface_hash": "11ba84d85546b3173cf1281a07516e21", "mtime": 1587530922, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./dataset_test.py", "plugin_data": null, "size": 2317, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/encode.meta.json b/core/.mypy_cache/3.7/encode.meta.json index eef562b..476cdc1 100644 --- a/core/.mypy_cache/3.7/encode.meta.json +++ b/core/.mypy_cache/3.7/encode.meta.json @@ -1 +1 @@ -{"data_mtime": 1587144630, "dep_lines": [15, 1, 1, 1], "dep_prios": [10, 5, 30, 30], "dependencies": ["base64", "builtins", "abc", "typing"], "hash": "395958a686bb9ebb93ef09d96237ade5", "id": "encode", "ignore_all": false, "interface_hash": "666f31c5fed5ed4dead38e35b00aa07c", "mtime": 1586403713, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "encode.py", "plugin_data": null, "size": 1751, "suppressed": [], "version_id": "0.761"} \ No newline at end of file +{"id": "encode", "path": "encode.py", "mtime": 1590124585, "size": 1751, "hash": "395958a686bb9ebb93ef09d96237ade5", "data_mtime": 1587144630, "dependencies": ["base64", "builtins", "abc", "typing"], "suppressed": [], "options": {"disallow_any_decorated": false, "disallow_any_unimported": false, "implicit_reexport": true, "allow_untyped_globals": false, "plugins": [], "follow_imports_for_stubs": false, "disallow_untyped_defs": false, "always_false": [], "strict_equality": false, "local_partial_types": false, "follow_imports": "normal", "platform": "darwin", "strict_optional_whitelist": null, "disallow_incomplete_defs": false, "ignore_missing_imports": true, "warn_no_return": true, "disallow_any_explicit": false, "always_true": [], "no_implicit_optional": false, "allow_redefinition": false, "disallow_any_generics": false, "bazel": false, "mypyc": false, "disallow_untyped_decorators": false, "disallow_untyped_calls": false, "strict_optional": true, "warn_unreachable": false, "disallow_any_expr": false, "show_none_errors": true, "warn_unused_ignores": false, "disallow_subclassing_any": false, "ignore_errors": false, "warn_return_any": false, "check_untyped_defs": false}, "dep_prios": [10, 5, 30, 30], "dep_lines": [15, 1, 1, 1], "interface_hash": "666f31c5fed5ed4dead38e35b00aa07c", "version_id": "0.761", "ignore_all": false, "plugin_data": null} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/model.data.json b/core/.mypy_cache/3.7/model.data.json index 625eab9..7e78be8 100644 --- a/core/.mypy_cache/3.7/model.data.json +++ b/core/.mypy_cache/3.7/model.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "model", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "B64DecodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64DecodeFile", "kind": "Gdef"}, "B64EncodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64EncodeFile", "kind": "Gdef"}, "Base64": {".class": "SymbolTableNode", "cross_ref": "encode.Base64", "kind": "Gdef"}, "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "DEFAULT_MODEL_LIBRARY": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.DEFAULT_MODEL_LIBRARY", "name": "DEFAULT_MODEL_LIBRARY", "type": "builtins.str"}}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "GetAllUsers": {".class": "SymbolTableNode", "cross_ref": "user.GetAllUsers", "kind": "Gdef"}, "Hash": {".class": "SymbolTableNode", "cross_ref": "hash.Hash", "kind": "Gdef"}, "HashData": {".class": "SymbolTableNode", "cross_ref": "hash.HashData", "kind": "Gdef"}, "HashFile": {".class": "SymbolTableNode", "cross_ref": "hash.HashFile", "kind": "Gdef"}, "LibraryAPI": {".class": "SymbolTableNode", "cross_ref": "api.LibraryAPI", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "MAX_COMPONENTS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MAX_COMPONENTS", "name": "MAX_COMPONENTS", "type": "builtins.int"}}, "MODELS_LIBRARY_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_LIBRARY_FILE_LOCATION", "name": "MODELS_LIBRARY_FILE_LOCATION", "type": "builtins.str"}}, "MODELS_SESSION_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_SESSION_FILE_LOCATION", "name": "MODELS_SESSION_FILE_LOCATION", "type": "builtins.str"}}, "Model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.Model", "name": "Model", "type_vars": []}, "flags": [], "fullname": "model.Model", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.Model", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 1], "arg_names": ["self", "metadata", "dataframe"], "flags": [], "fullname": "model.Model.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 1], "arg_names": ["self", "metadata", "dataframe"], "arg_types": ["model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, {".class": "UnionType", "items": ["dataset.CoreDataFrame", {".class": "NoneType"}]}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Model", "ret_type": {".class": "NoneType"}, "variables": []}}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.Model.data", "name": "data", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.Model.dataframe", "name": "dataframe", "type": {".class": "UnionType", "items": ["dataset.CoreDataFrame", {".class": "NoneType"}]}}}, "run": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.Model.run", "name": "run", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelComponent": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelComponent", "name": "ModelComponent", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelComponent", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelComponent", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "EXTERNAL": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.EXTERNAL", "name": "EXTERNAL", "type": "builtins.str"}}, "NATIVE": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.NATIVE", "name": "NATIVE", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDataLoader": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDataLoader", "name": "ModelDataLoader", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelDataLoader", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelDataLoader", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "LOCAL_PANDAS_CSV": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_CSV", "name": "LOCAL_PANDAS_CSV", "type": "builtins.str"}}, "LOCAL_PANDAS_PARQUET": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_PARQUET", "name": "LOCAL_PANDAS_PARQUET", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDeployment": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDeployment", "name": "ModelDeployment", "type_vars": []}, "flags": [], "fullname": "model.ModelDeployment", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelDeployment", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "flags": [], "fullname": "model.ModelDeployment.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "arg_types": ["model.ModelDeployment", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelDeployment", "ret_type": {".class": "NoneType"}, "variables": []}}}, "did": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelDeployment.did", "name": "did", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelEngine": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelEngine", "name": "ModelEngine", "type_vars": []}, "flags": [], "fullname": "model.ModelEngine", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelEngine", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.__init__", "name": "__init__", "type": null}}, "execute": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.execute", "name": "execute", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.library", "name": "library", "type": "model.ModelLibrary"}}, "model_configuration": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.model_configuration", "name": "model_configuration", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelLibrary": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelLibrary", "name": "ModelLibrary", "type_vars": []}, "flags": [], "fullname": "model.ModelLibrary", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelLibrary", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelLibrary.__init__", "name": "__init__", "type": null}}, "api": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelLibrary.api", "name": "api", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "install_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.install_model", "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "install_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "is_installed": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.is_installed", "name": "is_installed", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "is_installed of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "remove_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "flags": [], "fullname": "model.ModelLibrary.remove_model", "name": "remove_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "arg_types": ["model.ModelLibrary", "builtins.int"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "remove_model of ModelLibrary", "ret_type": "builtins.bool", "variables": []}}}, "run_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.run_model", "name": "run_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "run_model of ModelLibrary", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}, "store_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.store_model", "name": "store_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "store_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelProfile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelProfile", "name": "ModelProfile", "type_vars": []}, "flags": [], "fullname": "model.ModelProfile", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelProfile", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "flags": [], "fullname": "model.ModelProfile.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "arg_types": ["model.ModelProfile", "model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelProfile", "ret_type": {".class": "NoneType"}, "variables": []}}}, "component": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.component", "name": "component", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "data": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.data", "name": "data", "type": null}}, "files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.files", "name": "files", "type": null}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.model", "name": "model", "type": "model.Model"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelReturnType": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelReturnType", "name": "ModelReturnType", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelReturnType", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelReturnType", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "USER_RISKS": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelReturnType.USER_RISKS", "name": "USER_RISKS", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelSession", "name": "ModelSession", "type_vars": []}, "flags": [], "fullname": "model.ModelSession", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "flags": [], "fullname": "model.ModelSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "arg_types": ["model.ModelSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "model.ModelLibrary"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "cleanup_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelSession.cleanup_model", "name": "cleanup_model", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.library", "name": "library", "type": "model.ModelLibrary"}}, "metadata": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.metadata", "name": "metadata", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "start_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "flags": [], "fullname": "model.ModelSession.start_job", "name": "start_job", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "arg_types": ["model.ModelSession", "dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "start_job of ModelSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ProfileModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ProfileModel", "name": "ProfileModel", "type_vars": []}, "flags": [], "fullname": "model.ProfileModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ProfileModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "flags": [], "fullname": "model.ProfileModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "arg_types": ["model.ProfileModel", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ProfileModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model_name": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ProfileModel.model_name", "name": "model_name", "type": "builtins.str"}}, "profile": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ProfileModel.profile", "name": "profile", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ReadJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.ReadJSONFileFS", "kind": "Gdef"}, "Timestamp": {".class": "SymbolTableNode", "cross_ref": "utility.Timestamp", "kind": "Gdef"}, "User": {".class": "SymbolTableNode", "cross_ref": "user.User", "kind": "Gdef"}, "UserSet": {".class": "SymbolTableNode", "cross_ref": "user.UserSet", "kind": "Gdef"}, "VerifyModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.VerifyModel", "name": "VerifyModel", "type_vars": []}, "flags": [], "fullname": "model.VerifyModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.VerifyModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.VerifyModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.VerifyModel", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of VerifyModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.VerifyModel.model", "name": "model", "type": "model.Model"}}, "verify_model_encodings": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_encodings", "name": "verify_model_encodings", "type": null}}, "verify_model_files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_files", "name": "verify_model_files", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "WriteJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.WriteJSONFileFS", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__package__", "name": "__package__", "type": "builtins.str"}}, "io": {".class": "SymbolTableNode", "cross_ref": "io", "kind": "Gdef"}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_modules": {".class": "SymbolTableNode", "cross_ref": "model_modules", "kind": "Gdef"}, "os": {".class": "SymbolTableNode", "cross_ref": "os", "kind": "Gdef"}, "path": {".class": "SymbolTableNode", "cross_ref": "os.path", "kind": "Gdef"}, "shutil": {".class": "SymbolTableNode", "cross_ref": "shutil", "kind": "Gdef"}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "urllib": {".class": "SymbolTableNode", "cross_ref": "urllib", "kind": "Gdef"}}, "path": "model.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "model", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "B64DecodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64DecodeFile", "kind": "Gdef"}, "B64EncodeFile": {".class": "SymbolTableNode", "cross_ref": "encode.B64EncodeFile", "kind": "Gdef"}, "Base64": {".class": "SymbolTableNode", "cross_ref": "encode.Base64", "kind": "Gdef"}, "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "DEFAULT_MODEL_LIBRARY": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.DEFAULT_MODEL_LIBRARY", "name": "DEFAULT_MODEL_LIBRARY", "type": "builtins.str"}}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "GetAllUsers": {".class": "SymbolTableNode", "cross_ref": "user.GetAllUsers", "kind": "Gdef"}, "Hash": {".class": "SymbolTableNode", "cross_ref": "hash.Hash", "kind": "Gdef"}, "HashData": {".class": "SymbolTableNode", "cross_ref": "hash.HashData", "kind": "Gdef"}, "HashFile": {".class": "SymbolTableNode", "cross_ref": "hash.HashFile", "kind": "Gdef"}, "LibraryAPI": {".class": "SymbolTableNode", "cross_ref": "api.LibraryAPI", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "MAX_COMPONENTS": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MAX_COMPONENTS", "name": "MAX_COMPONENTS", "type": "builtins.int"}}, "MODELS_LIBRARY_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_LIBRARY_FILE_LOCATION", "name": "MODELS_LIBRARY_FILE_LOCATION", "type": "builtins.str"}}, "MODELS_SESSION_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.MODELS_SESSION_FILE_LOCATION", "name": "MODELS_SESSION_FILE_LOCATION", "type": "builtins.str"}}, "Model": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.Model", "name": "Model", "type_vars": []}, "flags": [], "fullname": "model.Model", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.Model", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 1], "arg_names": ["self", "metadata", "dataframe"], "flags": [], "fullname": "model.Model.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 1], "arg_names": ["self", "metadata", "dataframe"], "arg_types": ["model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, {".class": "UnionType", "items": ["dataset.CoreDataFrame", {".class": "NoneType"}]}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Model", "ret_type": {".class": "NoneType"}, "variables": []}}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.Model.data", "name": "data", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.Model.dataframe", "name": "dataframe", "type": {".class": "UnionType", "items": ["dataset.CoreDataFrame", {".class": "NoneType"}]}}}, "run": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.Model.run", "name": "run", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelComponent": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelComponent", "name": "ModelComponent", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelComponent", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelComponent", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "EXTERNAL": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.EXTERNAL", "name": "EXTERNAL", "type": "builtins.str"}}, "NATIVE": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelComponent.NATIVE", "name": "NATIVE", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDataLoader": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDataLoader", "name": "ModelDataLoader", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelDataLoader", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelDataLoader", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "ES_GENERIC": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.ES_GENERIC", "name": "ES_GENERIC", "type": "builtins.str"}}, "HDFS_PANDAS_CSV": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.HDFS_PANDAS_CSV", "name": "HDFS_PANDAS_CSV", "type": "builtins.str"}}, "HDFS_PANDAS_PARQUET": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.HDFS_PANDAS_PARQUET", "name": "HDFS_PANDAS_PARQUET", "type": "builtins.str"}}, "HDFS_SPARK_CSV": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.HDFS_SPARK_CSV", "name": "HDFS_SPARK_CSV", "type": "builtins.str"}}, "HDFS_SPARK_PARQUET": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.HDFS_SPARK_PARQUET", "name": "HDFS_SPARK_PARQUET", "type": "builtins.str"}}, "LOCAL_PANDAS_CSV": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_CSV", "name": "LOCAL_PANDAS_CSV", "type": "builtins.str"}}, "LOCAL_PANDAS_PARQUET": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelDataLoader.LOCAL_PANDAS_PARQUET", "name": "LOCAL_PANDAS_PARQUET", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelDeployment": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelDeployment", "name": "ModelDeployment", "type_vars": []}, "flags": [], "fullname": "model.ModelDeployment", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelDeployment", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "flags": [], "fullname": "model.ModelDeployment.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "deployment_id"], "arg_types": ["model.ModelDeployment", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelDeployment", "ret_type": {".class": "NoneType"}, "variables": []}}}, "did": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelDeployment.did", "name": "did", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelEngine": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelEngine", "name": "ModelEngine", "type_vars": []}, "flags": [], "fullname": "model.ModelEngine", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelEngine", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.__init__", "name": "__init__", "type": null}}, "execute": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelEngine.execute", "name": "execute", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.library", "name": "library", "type": "model.ModelLibrary"}}, "model_configuration": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelEngine.model_configuration", "name": "model_configuration", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelLibrary": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelLibrary", "name": "ModelLibrary", "type_vars": []}, "flags": [], "fullname": "model.ModelLibrary", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelLibrary", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelLibrary.__init__", "name": "__init__", "type": null}}, "api": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelLibrary.api", "name": "api", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "install_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.install_model", "name": "install_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "install_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "is_installed": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.is_installed", "name": "is_installed", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "is_installed of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "remove_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "flags": [], "fullname": "model.ModelLibrary.remove_model", "name": "remove_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_id"], "arg_types": ["model.ModelLibrary", "builtins.int"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "remove_model of ModelLibrary", "ret_type": "builtins.bool", "variables": []}}}, "run_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.run_model", "name": "run_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "run_model of ModelLibrary", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}, "store_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.ModelLibrary.store_model", "name": "store_model", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.ModelLibrary", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "store_model of ModelLibrary", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelProfile": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelProfile", "name": "ModelProfile", "type_vars": []}, "flags": [], "fullname": "model.ModelProfile", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelProfile", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "flags": [], "fullname": "model.ModelProfile.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "model", "component"], "arg_types": ["model.ModelProfile", "model.Model", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelProfile", "ret_type": {".class": "NoneType"}, "variables": []}}}, "component": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.component", "name": "component", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "data": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.data", "name": "data", "type": null}}, "files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelProfile.files", "name": "files", "type": null}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "model.ModelProfile.model", "name": "model", "type": "model.Model"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelReturnType": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelReturnType", "name": "ModelReturnType", "type_vars": []}, "flags": ["is_enum"], "fullname": "model.ModelReturnType", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "model", "mro": ["model.ModelReturnType", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "USER_RISKS": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "model.ModelReturnType.USER_RISKS", "name": "USER_RISKS", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ModelSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ModelSession", "name": "ModelSession", "type_vars": []}, "flags": [], "fullname": "model.ModelSession", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ModelSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "flags": [], "fullname": "model.ModelSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "metadata", "library"], "arg_types": ["model.ModelSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "model.ModelLibrary"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ModelSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "cleanup_model": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ModelSession.cleanup_model", "name": "cleanup_model", "type": null}}, "library": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.library", "name": "library", "type": "model.ModelLibrary"}}, "metadata": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ModelSession.metadata", "name": "metadata", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "start_job": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "flags": [], "fullname": "model.ModelSession.start_job", "name": "start_job", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "dataframe"], "arg_types": ["model.ModelSession", "dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "start_job of ModelSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ProfileModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.ProfileModel", "name": "ProfileModel", "type_vars": []}, "flags": [], "fullname": "model.ProfileModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.ProfileModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "flags": [], "fullname": "model.ProfileModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model_name"], "arg_types": ["model.ProfileModel", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ProfileModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model_name": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.ProfileModel.model_name", "name": "model_name", "type": "builtins.str"}}, "profile": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.ProfileModel.profile", "name": "profile", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "ReadJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.ReadJSONFileFS", "kind": "Gdef"}, "Timestamp": {".class": "SymbolTableNode", "cross_ref": "utility.Timestamp", "kind": "Gdef"}, "User": {".class": "SymbolTableNode", "cross_ref": "user.User", "kind": "Gdef"}, "UserSet": {".class": "SymbolTableNode", "cross_ref": "user.UserSet", "kind": "Gdef"}, "VerifyModel": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "model.VerifyModel", "name": "VerifyModel", "type_vars": []}, "flags": [], "fullname": "model.VerifyModel", "metaclass_type": null, "metadata": {}, "module_name": "model", "mro": ["model.VerifyModel", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "flags": [], "fullname": "model.VerifyModel.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "model"], "arg_types": ["model.VerifyModel", "model.Model"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of VerifyModel", "ret_type": {".class": "NoneType"}, "variables": []}}}, "model": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "model.VerifyModel.model", "name": "model", "type": "model.Model"}}, "verify_model_encodings": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_encodings", "name": "verify_model_encodings", "type": null}}, "verify_model_files": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "model.VerifyModel.verify_model_files", "name": "verify_model_files", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "WriteJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.WriteJSONFileFS", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "model.__package__", "name": "__package__", "type": "builtins.str"}}, "io": {".class": "SymbolTableNode", "cross_ref": "io", "kind": "Gdef"}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "model_modules": {".class": "SymbolTableNode", "cross_ref": "model_modules", "kind": "Gdef"}, "os": {".class": "SymbolTableNode", "cross_ref": "os", "kind": "Gdef"}, "path": {".class": "SymbolTableNode", "cross_ref": "os.path", "kind": "Gdef"}, "shutil": {".class": "SymbolTableNode", "cross_ref": "shutil", "kind": "Gdef"}, "sys": {".class": "SymbolTableNode", "cross_ref": "sys", "kind": "Gdef"}, "threading": {".class": "SymbolTableNode", "cross_ref": "threading", "kind": "Gdef"}, "time": {".class": "SymbolTableNode", "cross_ref": "time", "kind": "Gdef"}, "urllib": {".class": "SymbolTableNode", "cross_ref": "urllib", "kind": "Gdef"}}, "path": "model.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/model.meta.json b/core/.mypy_cache/3.7/model.meta.json index a0123a0..435ec38 100644 --- a/core/.mypy_cache/3.7/model.meta.json +++ b/core/.mypy_cache/3.7/model.meta.json @@ -1 +1 @@ -{"data_mtime": 1589401156, "dep_lines": [16, 17, 18, 19, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 273], "dep_prios": [10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 30, 30, 30, 30, 30, 30, 20], "dependencies": ["logging", "threading", "time", "urllib.request", "urllib", "sys", "os", "os.path", "shutil", "io", "json", "model_modules", "database", "dataset", "user", "encode", "hash", "utility", "typing", "api", "enum", "builtins", "_importlib_modulespec", "abc", "json.decoder", "model_modules.local_pandas", "model_modules.local_pandas.local_pandas", "types"], "hash": "338dd25de6c9cc0e71bd12725a0024dd", "id": "model", "ignore_all": false, "interface_hash": "83f561c7d405c360ed6d80546bb11cd6", "mtime": 1589401599, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "model.py", "plugin_data": null, "size": 19298, "suppressed": ["MODEL"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219554, "dep_lines": [16, 17, 18, 19, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 344], "dep_prios": [10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 30, 30, 30, 30, 30, 30, 30, 30, 20, 20], "dependencies": ["logging", "threading", "time", "urllib.request", "urllib", "sys", "os", "os.path", "shutil", "io", "json", "model_modules", "database", "dataset", "user", "encode", "hash", "utility", "typing", "api", "enum", "builtins", "_importlib_modulespec", "abc", "json.decoder", "model_modules.es", "model_modules.es.es", "model_modules.local_pandas", "model_modules.local_pandas.local_pandas", "types", "requests"], "hash": "e1d0ab1dec0c3d7e0f86643f4e7e336a", "id": "model", "ignore_all": false, "interface_hash": "53ac2500ec9e6f3005850c298567c805", "mtime": 1590016856, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "model.py", "plugin_data": null, "size": 22532, "suppressed": ["MODEL"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/process.meta.json b/core/.mypy_cache/3.7/process.meta.json index cad4295..27b55a8 100644 --- a/core/.mypy_cache/3.7/process.meta.json +++ b/core/.mypy_cache/3.7/process.meta.json @@ -1 +1 @@ -{"data_mtime": 1587529195, "dep_lines": [23, 24, 25, 26, 27, 28, 30, 1, 1, 1, 29], "dep_prios": [10, 5, 5, 5, 5, 5, 5, 5, 30, 30, 5], "dependencies": ["logging", "dataset", "typing", "enum", "entity", "user", "database", "builtins", "abc", "types"], "hash": "3664d0109ace13eb8ca58074c60685a5", "id": "process", "ignore_all": false, "interface_hash": "6af6e3620b973328fce5ccd2ab3e9525", "mtime": 1587529123, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "process.py", "plugin_data": null, "size": 4708, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219478, "dep_lines": [23, 24, 25, 26, 27, 28, 30, 1, 1, 1, 1, 1, 29], "dep_prios": [10, 5, 5, 5, 5, 5, 5, 5, 30, 20, 20, 30, 5], "dependencies": ["logging", "dataset", "typing", "enum", "entity", "user", "database", "builtins", "abc", "json", "requests", "types"], "hash": "959ef7f8684d29321467c5201f942746", "id": "process", "ignore_all": false, "interface_hash": "6af6e3620b973328fce5ccd2ab3e9525", "mtime": 1590219338, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "process.py", "plugin_data": null, "size": 5009, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/process_test.meta.json b/core/.mypy_cache/3.7/process_test.meta.json index e4b9444..94ece02 100644 --- a/core/.mypy_cache/3.7/process_test.meta.json +++ b/core/.mypy_cache/3.7/process_test.meta.json @@ -1 +1 @@ -{"data_mtime": 1587529195, "dep_lines": [16, 18, 19, 20, 21, 1, 1, 1, 1, 17], "dep_prios": [10, 5, 10, 5, 5, 5, 30, 30, 30, 10], "dependencies": ["unittest", "process", "logging", "typing", "unittest.mock", "builtins", "abc", "enum", "unittest.case"], "hash": "203e47c05676d537381f746a6ba7aef7", "id": "process_test", "ignore_all": false, "interface_hash": "781ef4b25860a5ce73709332c8d19b96", "mtime": 1583115850, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "process_test.py", "plugin_data": null, "size": 1261, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219478, "dep_lines": [16, 18, 19, 20, 21, 1, 1, 1, 1, 17], "dep_prios": [10, 5, 10, 5, 5, 5, 30, 30, 30, 10], "dependencies": ["unittest", "process", "logging", "typing", "unittest.mock", "builtins", "abc", "enum", "unittest.case"], "hash": "203e47c05676d537381f746a6ba7aef7", "id": "process_test", "ignore_all": false, "interface_hash": "781ef4b25860a5ce73709332c8d19b96", "mtime": 1583115850, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "process_test.py", "plugin_data": null, "size": 1261, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/risk.data.json b/core/.mypy_cache/3.7/risk.data.json index 0a438d6..7b8397d 100644 --- a/core/.mypy_cache/3.7/risk.data.json +++ b/core/.mypy_cache/3.7/risk.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "risk", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "RiskJob": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "risk.RiskJob", "name": "RiskJob", "type_vars": []}, "flags": [], "fullname": "risk.RiskJob", "metaclass_type": null, "metadata": {}, "module_name": "risk", "mro": ["risk.RiskJob", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "risk.RiskJob.__init__", "name": "__init__", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "risk.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "risk.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "risk.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "risk.__package__", "name": "__package__", "type": "builtins.str"}}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}}, "path": "risk.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "risk", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "RiskJob": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "risk.RiskJob", "name": "RiskJob", "type_vars": []}, "flags": [], "fullname": "risk.RiskJob", "metaclass_type": null, "metadata": {}, "module_name": "risk", "mro": ["risk.RiskJob", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "risk.RiskJob.__init__", "name": "__init__", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "RiskScore": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "risk.RiskScore", "name": "RiskScore", "type_vars": []}, "flags": [], "fullname": "risk.RiskScore", "metaclass_type": null, "metadata": {}, "module_name": "risk", "mro": ["risk.RiskScore", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "risk.RiskScore.__init__", "name": "__init__", "type": null}}, "calculate": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "risk.RiskScore.calculate", "name": "calculate", "type": null}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "risk.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "risk.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "risk.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "risk.__package__", "name": "__package__", "type": "builtins.str"}}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}}, "path": "risk.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/risk.meta.json b/core/.mypy_cache/3.7/risk.meta.json index 4aca8d9..f627d4f 100644 --- a/core/.mypy_cache/3.7/risk.meta.json +++ b/core/.mypy_cache/3.7/risk.meta.json @@ -1 +1 @@ -{"data_mtime": 1587144630, "dep_lines": [20, 1, 1, 1, 1], "dep_prios": [10, 5, 30, 30, 30], "dependencies": ["logging", "builtins", "abc", "types", "typing"], "hash": "a8d48270f68339ffb295e9dde5d3ae2a", "id": "risk", "ignore_all": false, "interface_hash": "be1cbe56dc68715de88cb0143ce1d8f5", "mtime": 1579008464, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "risk.py", "plugin_data": null, "size": 950, "suppressed": [], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1589487097, "dep_lines": [20, 1, 1, 1, 1], "dep_prios": [10, 5, 30, 30, 30], "dependencies": ["logging", "builtins", "abc", "types", "typing"], "hash": "45013c10c94fe483a374ff6e00696602", "id": "risk", "ignore_all": false, "interface_hash": "63df442d48cbd31acb2eb4cf64b3d584", "mtime": 1589485977, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "risk.py", "plugin_data": null, "size": 1095, "suppressed": [], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/test.meta.json b/core/.mypy_cache/3.7/test.meta.json index e225b77..2605b67 100644 --- a/core/.mypy_cache/3.7/test.meta.json +++ b/core/.mypy_cache/3.7/test.meta.json @@ -1 +1 @@ -{"data_mtime": 1587529195, "dep_lines": [17, 19, 20, 1, 1, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 20, 30, 30, 30, 30, 30, 30], "dependencies": ["unittest", "dataset_test", "process_test", "builtins", "logging", "abc", "typing", "unittest.case", "unittest.loader", "unittest.result", "unittest.runner"], "hash": "66a9068208e81d9fc1b23a17d372d676", "id": "test", "ignore_all": false, "interface_hash": "839927c3533512c592df68e3aec403d0", "mtime": 1586384230, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./test.py", "plugin_data": null, "size": 1563, "suppressed": [], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219478, "dep_lines": [17, 19, 20, 1, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 30, 30, 30, 30, 30, 30], "dependencies": ["unittest", "dataset_test", "process_test", "builtins", "abc", "typing", "unittest.case", "unittest.loader", "unittest.result", "unittest.runner"], "hash": "66a9068208e81d9fc1b23a17d372d676", "id": "test", "ignore_all": false, "interface_hash": "839927c3533512c592df68e3aec403d0", "mtime": 1586384230, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./test.py", "plugin_data": null, "size": 1563, "suppressed": [], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/user.data.json b/core/.mypy_cache/3.7/user.data.json index 636cc5b..f5952ff 100644 --- a/core/.mypy_cache/3.7/user.data.json +++ b/core/.mypy_cache/3.7/user.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "user", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "DBReadFile": {".class": "SymbolTableNode", "cross_ref": "database.DBReadFile", "kind": "Gdef"}, "DBWriteFile": {".class": "SymbolTableNode", "cross_ref": "database.DBWriteFile", "kind": "Gdef"}, "DataFrame": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "user.DataFrame", "name": "DataFrame", "type": {".class": "AnyType", "missing_import_name": "user.DataFrame", "source_any": null, "type_of_any": 3}}}, "Dataset": {".class": "SymbolTableNode", "cross_ref": "dataset.Dataset", "kind": "Gdef"}, "DatasetSession": {".class": "SymbolTableNode", "cross_ref": "dataset.DatasetSession", "kind": "Gdef"}, "Dict": {".class": "SymbolTableNode", "cross_ref": "typing.Dict", "kind": "Gdef"}, "ExtractAllUsersCSV": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["database.DBReadFile"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.ExtractAllUsersCSV", "name": "ExtractAllUsersCSV", "type_vars": []}, "flags": [], "fullname": "user.ExtractAllUsersCSV", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.ExtractAllUsersCSV", "database.DBReadFile", "database.DB", "builtins.object"], "names": {".class": "SymbolTable", "extract_users": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["dataset_session", "log_metadata_obj"], "flags": ["is_static", "is_decorated"], "fullname": "user.ExtractAllUsersCSV.extract_users", "name": "extract_users", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["dataset_session", "log_metadata_obj"], "arg_types": ["dataset.DatasetSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "extract_users of ExtractAllUsersCSV", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "extract_users", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["dataset_session", "log_metadata_obj"], "arg_types": ["dataset.DatasetSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "extract_users of ExtractAllUsersCSV", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}}}, "from_raw_list": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["user_set"], "flags": ["is_static", "is_decorated"], "fullname": "user.ExtractAllUsersCSV.from_raw_list", "name": "from_raw_list", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["user_set"], "arg_types": [{".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "from_raw_list of ExtractAllUsersCSV", "ret_type": "user.UserSet", "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "from_raw_list", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["user_set"], "arg_types": [{".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "from_raw_list of ExtractAllUsersCSV", "ret_type": "user.UserSet", "variables": []}}}}, "get": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["log_dataset_session", "log_metadata_obj"], "flags": ["is_static", "is_decorated"], "fullname": "user.ExtractAllUsersCSV.get", "name": "get", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["log_dataset_session", "log_metadata_obj"], "arg_types": ["dataset.DatasetSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get of ExtractAllUsersCSV", "ret_type": "user.UserSet", "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "get", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["log_dataset_session", "log_metadata_obj"], "arg_types": ["dataset.DatasetSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get of ExtractAllUsersCSV", "ret_type": "user.UserSet", "variables": []}}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "GetAllUsers": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["database.DBReadFile"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.GetAllUsers", "name": "GetAllUsers", "type_vars": []}, "flags": [], "fullname": "user.GetAllUsers", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.GetAllUsers", "database.DBReadFile", "database.DB", "builtins.object"], "names": {".class": "SymbolTable", "get": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "user.GetAllUsers.get", "name": "get", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["user.GetAllUsers"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get of GetAllUsers", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "ReadActorFromDB": {".class": "SymbolTableNode", "cross_ref": "database.ReadActorFromDB", "kind": "Gdef"}, "ReadJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.ReadJSONFileFS", "kind": "Gdef"}, "ReadUserSet": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["database.DBReadFile"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.ReadUserSet", "name": "ReadUserSet", "type_vars": []}, "flags": [], "fullname": "user.ReadUserSet", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.ReadUserSet", "database.DBReadFile", "database.DB", "builtins.object"], "names": {".class": "SymbolTable", "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["user_set"], "flags": ["is_static", "is_decorated"], "fullname": "user.ReadUserSet.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["user_set"], "arg_types": ["user.UserSet"], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of ReadUserSet", "ret_type": "user.UserSet", "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["user_set"], "arg_types": ["user.UserSet"], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of ReadUserSet", "ret_type": "user.UserSet", "variables": []}}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Sequence": {".class": "SymbolTableNode", "cross_ref": "typing.Sequence", "kind": "Gdef"}, "Tuple": {".class": "SymbolTableNode", "cross_ref": "typing.Tuple", "kind": "Gdef"}, "USERS_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.USERS_FILE_LOCATION", "name": "USERS_FILE_LOCATION", "type": "builtins.str"}}, "User": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.User", "name": "User", "type_vars": []}, "flags": [], "fullname": "user.User", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.User", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "user_id"], "flags": [], "fullname": "user.User.__init__", "name": "__init__", "type": null}}, "user_id": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "user.User.user_id", "name": "user_id", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "UserSet": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.UserSet", "name": "UserSet", "type_vars": []}, "flags": [], "fullname": "user.UserSet", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.UserSet", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "set_of_users"], "flags": [], "fullname": "user.UserSet.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "set_of_users"], "arg_types": ["user.UserSet", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of UserSet", "ret_type": {".class": "NoneType"}, "variables": []}}}, "users": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "user.UserSet.users", "name": "users", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "WriteJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.WriteJSONFileFS", "kind": "Gdef"}, "WriteListToDirectories": {".class": "SymbolTableNode", "cross_ref": "database.WriteListToDirectories", "kind": "Gdef"}, "WriteNewActorToDB": {".class": "SymbolTableNode", "cross_ref": "database.WriteNewActorToDB", "kind": "Gdef"}, "WriteUserSet": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["database.DBWriteFile"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.WriteUserSet", "name": "WriteUserSet", "type_vars": []}, "flags": [], "fullname": "user.WriteUserSet", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.WriteUserSet", "database.DBWriteFile", "database.DB", "builtins.object"], "names": {".class": "SymbolTable", "write": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["user_set"], "flags": ["is_static", "is_decorated"], "fullname": "user.WriteUserSet.write", "name": "write", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["user_set"], "arg_types": ["user.UserSet"], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "write of WriteUserSet", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "write", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["user_set"], "arg_types": ["user.UserSet"], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "write of WriteUserSet", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.__package__", "name": "__package__", "type": "builtins.str"}}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "np": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "user.np", "name": "np", "type": {".class": "AnyType", "missing_import_name": "user.np", "source_any": null, "type_of_any": 3}}}, "pd": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "user.pd", "name": "pd", "type": {".class": "AnyType", "missing_import_name": "user.pd", "source_any": null, "type_of_any": 3}}}}, "path": "user.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "user", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "CoreDataFrame": {".class": "SymbolTableNode", "cross_ref": "dataset.CoreDataFrame", "kind": "Gdef"}, "DBReadFile": {".class": "SymbolTableNode", "cross_ref": "database.DBReadFile", "kind": "Gdef"}, "DBWriteFile": {".class": "SymbolTableNode", "cross_ref": "database.DBWriteFile", "kind": "Gdef"}, "DataFrame": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "user.DataFrame", "name": "DataFrame", "type": {".class": "AnyType", "missing_import_name": "user.DataFrame", "source_any": null, "type_of_any": 3}}}, "Dataset": {".class": "SymbolTableNode", "cross_ref": "dataset.Dataset", "kind": "Gdef"}, "DatasetSession": {".class": "SymbolTableNode", "cross_ref": "dataset.DatasetSession", "kind": "Gdef"}, "Dict": {".class": "SymbolTableNode", "cross_ref": "typing.Dict", "kind": "Gdef"}, "ExtractAllUsersCSV": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["database.DBReadFile"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.ExtractAllUsersCSV", "name": "ExtractAllUsersCSV", "type_vars": []}, "flags": [], "fullname": "user.ExtractAllUsersCSV", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.ExtractAllUsersCSV", "database.DBReadFile", "database.DB", "builtins.object"], "names": {".class": "SymbolTable", "extract_users": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["dataset_session", "log_metadata_obj"], "flags": ["is_static", "is_decorated"], "fullname": "user.ExtractAllUsersCSV.extract_users", "name": "extract_users", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["dataset_session", "log_metadata_obj"], "arg_types": ["dataset.DatasetSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "extract_users of ExtractAllUsersCSV", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "extract_users", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["dataset_session", "log_metadata_obj"], "arg_types": ["dataset.DatasetSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "extract_users of ExtractAllUsersCSV", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}}}, "from_raw_list": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["user_set"], "flags": ["is_static", "is_decorated"], "fullname": "user.ExtractAllUsersCSV.from_raw_list", "name": "from_raw_list", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["user_set"], "arg_types": [{".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "from_raw_list of ExtractAllUsersCSV", "ret_type": "user.UserSet", "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "from_raw_list", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["user_set"], "arg_types": [{".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "from_raw_list of ExtractAllUsersCSV", "ret_type": "user.UserSet", "variables": []}}}}, "get": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["log_dataset_session", "log_metadata_obj"], "flags": ["is_static", "is_decorated"], "fullname": "user.ExtractAllUsersCSV.get", "name": "get", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["log_dataset_session", "log_metadata_obj"], "arg_types": ["dataset.DatasetSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get of ExtractAllUsersCSV", "ret_type": "user.UserSet", "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "get", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["log_dataset_session", "log_metadata_obj"], "arg_types": ["dataset.DatasetSession", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get of ExtractAllUsersCSV", "ret_type": "user.UserSet", "variables": []}}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "GetAllUsers": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["database.DBReadFile"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.GetAllUsers", "name": "GetAllUsers", "type_vars": []}, "flags": [], "fullname": "user.GetAllUsers", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.GetAllUsers", "database.DBReadFile", "database.DB", "builtins.object"], "names": {".class": "SymbolTable", "get": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "user.GetAllUsers.get", "name": "get", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["user.GetAllUsers"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get of GetAllUsers", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "ReadActorFromDB": {".class": "SymbolTableNode", "cross_ref": "database.ReadActorFromDB", "kind": "Gdef"}, "ReadJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.ReadJSONFileFS", "kind": "Gdef"}, "ReadUserSet": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["database.DBReadFile"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.ReadUserSet", "name": "ReadUserSet", "type_vars": []}, "flags": [], "fullname": "user.ReadUserSet", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.ReadUserSet", "database.DBReadFile", "database.DB", "builtins.object"], "names": {".class": "SymbolTable", "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [], "arg_names": [], "flags": ["is_static", "is_decorated"], "fullname": "user.ReadUserSet.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [], "arg_names": [], "arg_types": [], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of ReadUserSet", "ret_type": "user.UserSet", "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "read", "type": {".class": "CallableType", "arg_kinds": [], "arg_names": [], "arg_types": [], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of ReadUserSet", "ret_type": "user.UserSet", "variables": []}}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Sequence": {".class": "SymbolTableNode", "cross_ref": "typing.Sequence", "kind": "Gdef"}, "Tuple": {".class": "SymbolTableNode", "cross_ref": "typing.Tuple", "kind": "Gdef"}, "USERS_FILE_LOCATION": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.USERS_FILE_LOCATION", "name": "USERS_FILE_LOCATION", "type": "builtins.str"}}, "User": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.User", "name": "User", "type_vars": []}, "flags": [], "fullname": "user.User", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.User", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "user_id"], "flags": [], "fullname": "user.User.__init__", "name": "__init__", "type": null}}, "user_id": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "user.User.user_id", "name": "user_id", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "UserSet": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.UserSet", "name": "UserSet", "type_vars": []}, "flags": [], "fullname": "user.UserSet", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.UserSet", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "users_dict"], "flags": [], "fullname": "user.UserSet.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "users_dict"], "arg_types": ["user.UserSet", {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of UserSet", "ret_type": {".class": "NoneType"}, "variables": []}}}, "users": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "user.UserSet.users", "name": "users", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "WriteJSONFileFS": {".class": "SymbolTableNode", "cross_ref": "database.WriteJSONFileFS", "kind": "Gdef"}, "WriteListToDirectories": {".class": "SymbolTableNode", "cross_ref": "database.WriteListToDirectories", "kind": "Gdef"}, "WriteNewActorToDB": {".class": "SymbolTableNode", "cross_ref": "database.WriteNewActorToDB", "kind": "Gdef"}, "WriteUserSet": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["database.DBWriteFile"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "user.WriteUserSet", "name": "WriteUserSet", "type_vars": []}, "flags": [], "fullname": "user.WriteUserSet", "metaclass_type": null, "metadata": {}, "module_name": "user", "mro": ["user.WriteUserSet", "database.DBWriteFile", "database.DB", "builtins.object"], "names": {".class": "SymbolTable", "write": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["new_user_set"], "flags": ["is_static", "is_decorated"], "fullname": "user.WriteUserSet.write", "name": "write", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["new_user_set"], "arg_types": ["user.UserSet"], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "write of WriteUserSet", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_staticmethod", "is_ready"], "fullname": null, "name": "write", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["new_user_set"], "arg_types": ["user.UserSet"], "bound_args": [], "def_extras": {"first_arg": null}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "write of WriteUserSet", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "user.__package__", "name": "__package__", "type": "builtins.str"}}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "np": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "user.np", "name": "np", "type": {".class": "AnyType", "missing_import_name": "user.np", "source_any": null, "type_of_any": 3}}}, "pd": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "user.pd", "name": "pd", "type": {".class": "AnyType", "missing_import_name": "user.pd", "source_any": null, "type_of_any": 3}}}}, "path": "user.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/user.meta.json b/core/.mypy_cache/3.7/user.meta.json index a358aaa..7f8c8f0 100644 --- a/core/.mypy_cache/3.7/user.meta.json +++ b/core/.mypy_cache/3.7/user.meta.json @@ -1 +1 @@ -{"data_mtime": 1587529195, "dep_lines": [16, 17, 18, 19, 1, 1, 1, 20, 22], "dep_prios": [10, 5, 5, 5, 5, 30, 30, 5, 10], "dependencies": ["logging", "database", "dataset", "typing", "builtins", "abc", "types"], "hash": "b36b78a1383b6ed86044b4c6374bd9f3", "id": "user", "ignore_all": false, "interface_hash": "2f15577ebb851ecfbed21c452a2fa655", "mtime": 1588910827, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user.py", "plugin_data": null, "size": 5184, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219478, "dep_lines": [16, 17, 18, 19, 1, 1, 1, 1, 1, 20, 22], "dep_prios": [10, 5, 5, 5, 5, 30, 30, 20, 20, 5, 10], "dependencies": ["logging", "database", "dataset", "typing", "builtins", "abc", "types", "json", "requests"], "hash": "bbd60a6553f53ae20bfb75fa04252077", "id": "user", "ignore_all": false, "interface_hash": "65e21e9d92a18117b4c094419576c34a", "mtime": 1590219469, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user.py", "plugin_data": null, "size": 6136, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/user_test.meta.json b/core/.mypy_cache/3.7/user_test.meta.json index ef2668c..6b49c6d 100644 --- a/core/.mypy_cache/3.7/user_test.meta.json +++ b/core/.mypy_cache/3.7/user_test.meta.json @@ -1 +1 @@ -{"data_mtime": 1587529195, "dep_lines": [18, 19, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 20, 30, 30], "dependencies": ["unittest", "dataset", "builtins", "logging", "abc", "typing"], "hash": "6b9281958b981e2240744073252ed2d4", "id": "user_test", "ignore_all": false, "interface_hash": "ee807b9669e34d8994281aa6aae47d6b", "mtime": 1585289403, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user_test.py", "plugin_data": null, "size": 1055, "suppressed": [], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590219001, "dep_lines": [18, 19, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 20, 20, 20, 30, 30], "dependencies": ["unittest", "dataset", "builtins", "json", "requests", "logging", "abc", "typing"], "hash": "6b9281958b981e2240744073252ed2d4", "id": "user_test", "ignore_all": false, "interface_hash": "ee807b9669e34d8994281aa6aae47d6b", "mtime": 1585289403, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user_test.py", "plugin_data": null, "size": 1055, "suppressed": [], "version_id": "0.761"} \ No newline at end of file diff --git a/core/__pycache__/dataset.cpython-37.pyc b/core/__pycache__/dataset.cpython-37.pyc index bbabfced360d338306ab430eb82614aace5de000..53a7e7192e1caf4a021cd2818679b398cf2f7cb0 100644 GIT binary patch delta 2936 zcma)8Z)_Vy7T?)j@2=POdTqyl(uBlNNb8n_w7rzH*HR!&j{+)b%%RHA?rnFL#I9re zW;f7UIf6(f)DK0f<`aky&3!q9PFMB%g|8J~0ErJsNWdbYegcH<;Pc%HiTB1fO;0)L zyq>r7oA>6;n>X*h*`I#%_v6-+sgxIE7Zv%G- zaE4|9XZ<0-dB8b3ba_&uLt>x+19@5ifr7wAz(raDTmp3^Dp#e-@Xc?JspP?16R|2G zyLnf8o$TcQ(LN=I_{aK>WR8De)X6M=ApSS9z(0%sl~nm_rbC|N-JW@oVl08IN0H1TxyvF{WcTc_7zjEj<)Bm)pTFq&9rOs_EEPr~ z75Q(2e1OJD#DtT82VB7akv*r0Z6DwZxiPYjw{u1E-mN!tbL81aK(>IJVb^iiaH?dIxAD`1Z!GN>PTtbX2S;{e%yUdWHfjzIS&Kb-&VIz|>A^BlBb z50Fr55K5LHAE~k=FUeG;F`(L2`A;O2*T@E0lN?1jM?ck7-G|HPBLaUfiq%`xzt~N9 z!Q^V-vzEK!R|tC=bXHXM6uhE12ImO|jJ`1vFXqQ`M}hY#v_JzQDWl*P{$YOlg=2u2 zg5(J#7?unzXE=e)AQ7jH1Xj8mUw5&>+O->HcR;hnDix1MAtwn>XyzHa0lzVVZfJa5T-TR zS15sT}Ybu@?AdTvPVpN5F84SfMBvO~#LFkE{zyQ9{zvA#8fX*5ou7pLnF4ajL z5uplIMNbxo9y=Aqz(I@bQa8ThhTig|+iZ4|Ub_|gt#C5D)bYEv+vzmxo+t&6G=g@k zqOjATKGHkxrDofuk+}?s;4=p*UPbQZ^l5%mFXny%v0fa=8l*-yF<-^vCgLodmf3XpoyL;2USH1b6;h@M;@ka)P$rK4vsYH zqX63v!+qC9t6zvDMHADkzaoplaE6S821X(=M-N&BK%_1pm7L44acbYt}HHTwWj+9O+j#4 zG!5LiZwh4744{Mv)of(-udu2g1W-94v!`GYepcPje=h8YO9J(;v1QqBNhxYDMhMpK)8-IZQ)@uVa<#H!sFii$g2d=UeeyTLguN6<6y{~VI)3@bt zStM+yS0g~Jff~gHfGgM1ea`>4`t59PEV)(T$USDr-4VV}8ag^yO%@@<7GWU|vlf5& z#x@5nzzp7+7FewL?PB4%vF*3v2aYJ&_v{1Dy=DUI9tSG@90ev@K-96Qp<6oEd5*Meg zrw3E}<~_P)_F$X;HG8lVxIzDC%wrI+^GG}-=u(DXUgBGY`PdUz4gbVU&pH4#To;Gn zW6CHb3klnV(u|zSaHKm9ZF}$ygy9is9k)f@fIY=O8$LMu0t~S;NOUBlNXC)uL?Z4u z{61nBPYlby$UEjhQWj?-)j6uN0CgyKcK>mLX-WR&cp#Z67zAsbI;@6 z^SF2R$qDBT+cp&X%{=(#+Wq2=lZPL7j?R31P7!gD_*4;zZMA6=(}Ye;C*}}K3WJzI zEJe%|7BMTZw)>hcaa%aV9XjnNmJ%*8H*o0GBi=7O;$Gkp_lf%=O*~E3X`#+5)lBP| zx;Fq*F*v+;H9ik8jCT`vpn`SnA)Lg2wa4%}{;9WN60an8VGhCg0WRaNu>hCQG2haf zG0_fJy4W_4LKAn)61B}`lMx$E@oQ02!%C*O1Snf1Ok_)d?) zw^t4=v#}l->)=54pv$-Rv_C?JEw+jg=%DLzWbc`M3g8%yrOMF3xzzWth5w`)P{&cX zV2+ZVbQq4~Ww%@zXVGS;5p2>IB{WnEEY;Iw4R_qTFp5+CH!r-(W|425r6|-XlB#iO zvSO0q3;ko?rHx-Po93|eAgF?>(*o4eZL+O5sotD&4` zri&n4lNhQ?{;c5BQp4mqvuHZ3w>dNfcxdDo!r5^V=t z!7XFpNK~0W*m-}8UUsCe;;o@N?d6tHXqepO{fqtG<5hSmU5{DSz$Zh63}3RR7rY*F z4xbwN(nS&n1t? diff --git a/core/__pycache__/encode.cpython-37.pyc b/core/__pycache__/encode.cpython-37.pyc index 28645328e599e975a70894d8069471243f4d5380..91c055f40c505f820221980ef0a3e868794a35a4 100644 GIT binary patch delta 20 ZcmZn^ZWQKr;^pOH00PZ~;~TllH~}YT1SJ3f delta 20 ZcmZn^ZWQKr;^pOH0D{JueH*#UH~}gM1bqMi diff --git a/core/__pycache__/model.cpython-37.pyc b/core/__pycache__/model.cpython-37.pyc index 0505e65b1d403b4b572a3dda531b006ac9305be7..d484a489898a64198b92a29f28a8c89b99b5df5e 100644 GIT binary patch delta 3698 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 U8gy$xZCPt*9!>W%?VJ|>4|FF+<^TWy diff --git a/core/__pycache__/process.cpython-37.pyc b/core/__pycache__/process.cpython-37.pyc index 050368a17e33d93eccff2ac7dbe95797c76e1637..eab59cfc11290d51bcf6af20bf0c11981b93463c 100644 GIT binary patch delta 656 zcmYjN&ubGw6rRcc-t0!Lm^P_DHm4AhgDtgcj_RR^prB9)#E@jCY2v1v%uFN=8x(>U z!Gp}fYjW`-2%_N0y9W=Y$N3NR)IY&DTMrJrx8HpGzHi=pzc$aV=I;5vi{Lyw{rUX; zpILs8#1Jva6Op*z;0-9^n13-GpHs(49Nc7Mw zpaot>D~wTsmS&Ce4F53JH~Z*yioo#uFNM z31jtO7>6VZ9>u*@+!@pZX-5E$+C%a?1LMwi#LO;VtOcAf9!waa_25}0CqCK5j>b5Z z-ss$@rEIAO5~=kFmwMD^TpCKjr2c{&Gpg1|vydt-Ey1U;7RBw5gsHT}x`$*)8s7h1 z3*Wg}l^4jA({`6bWop-OR5K}-UOS3f+5&t5;kZBio~h=7FR_xd%KwJvX^NejBu(3mmW;f0#<)*v29v^!1iL;(#Ft=mEuXOcoM;au&80(8Pl!nCeBPDh7BHy zmmZ2RCr>8$7l{4~#ft~e`2z%R9`x>;)EVZR?|s92?|bw6^7l*O?I7?FtWT#OpV7wW z@T(m<5bARWju@#QcJpn8sj-5_#&8!HSwXw#>CG{z(8R2aicF1hOk*3W2cu;+WZ9w2%U(3#{fr3_ zv2vl8muzOe=oggnS&gPL9mVRW)ADwrUk2FRi+y#)y{K-v%N-&lPs~HXxZrv;UI&OB zz6w{;DEcX7w5v;WMYhjgG4;XiM9DcelswHOyvZEY<;1%y4= z4he0a_&9Pr;#s4`hi6vrmfC3hYy=h)zVT(xJCD7YQ}lb?GKFRb^<%uQ{?@k}w)P;H zQI^H<{yi1;-P9e`w>Dc=kj-_+WchL(ow>b<{dt^s|izWMu0Z7r??!2jf# jWP(le+CEBD=sidf;N}H;+EbqqJG}v@@ zoF>*T7WD~kF#kYuKu8>rfGa0XTo6)^E5U^;;!q)k5C`5HS0tkB>b-q4^X7Z=-uHIC ztUa!kE*6Up!{>)b-{1Xn@~hIvR^I7FfruJ@*pliqYhb0OHoffLpwI~(G-$aI1+oRS z5uYpyfm}j~9;1?M9}ZXoyU)jLi|-o;Y=zyKO1L!lGci8^U?GcPi^u#tyFance4tSX zi6O1Tl-byb%^?T2w<+z|@ZlIEj3Eq?%w9?6;*8H}d7X7GnoK(P9PtIP!~)izr4YWc zpO=N$8iFkN<`CK#l7hz8L%?A8Ce{bmO?HcQ_)S8&@C4=8Cn)YyC>f11&@fL!_^i%6 zYfa2x?)_pUyQ0|+&ge3xtZ%yW^KSn|(yeZ9+jl!%iB@MP5YqLVvU$6vU2Atv-wXDl zQ=aP;)BN?I>EFOg*8`cF0tbjbU@SGsM^rIVnhAvHigf%&ef4_1arw&C)yCCpm)>~y z%C$9Nk%PG%MpD>h=2mxG!TU1oc2aYz8+OD5&U#sK5J24s*vA-wi@Qo zEC`nnsHFc3Lj~GIi70Iw#98%A{x1ahxo{tr)H}tKt5iloMaC>&CHowzjdHLnMYAOX zU(+6?w&oRo>?2_`4HSA;eObLR~%&Tl=r6g*&?%Coz zxt&wDD|e5*PNvTJF!9%L?j!Z6@@7u2F5*!An0t1UdNHJHVf13_U9L`hnj*TlMg=CqM^!G9 zMTZmwAtpbqPP!3VQ3;ieKpZA2C?~KXmvG9P5pSvQst;#Y$X)l*7+D%o7oVs`Vm_=+ OtHJmSnYl`_Qv3%gKr1!? delta 1232 zcmZuxOKTKC5bo;fovi!HZr)K$VqCLMqS+Xuf=G;cD1i_ks|X9a#GNrDM%UC#e1r`F z*Mo?c*d9fcTs#S)M?t|KAP8ROF9;qar<|;s-6#nT^w(9@RW)6&{+)T3NsPwh5kcQi z|Ks(MruT`bW<2IPUZHfeu;e=E>UDFq4(mw++jTb5rbp`vt6@GWkXjMgmOi7l#%Onk z2yC#WZ9EobF)zkN1?FG{JXn#QEJImVBnZzagAMJ%R?OKVC#=vkc9QL1ud?Pf$6gx< zX35{R$m$A|VP34sMU@lSN^%RZnK$Xn{sAAB0$~-}NWK|4wJ_&;#nSD&!zYM$*|8~> zd#>V~=Uky+a*o%3pPBws3#H=Bf;&vamdSG5^-4H1>tutJScg<_O~3Ib88n# zIghR)2!jMX!4+ zt%ZphlINdC+narb^y3L)UCxD&3L>BnM-N0T;sSf@=NKD%i65u+FUDT|BsvLw`g`;q zT-1}Xtm!LzuITB*k=>~*sa{}pu3i{0tKY^pNqIfK2!pyg(LK^d2Y8UcQh1bU&S1XY zdEntp(R1u-O9!dgQ4t&<%^SL$7&h4k`#yY0Y=DZ+I-dTNY=a*CBRQV*Lk?mItuS&I z;gHUxuD5fMcX|sdt6!zgtp=xkq_VB4If7tRT8Q9L;X&asp>hZ=2PNN_-e$sm5X?an z5y2e9wv@LILW<6*-rcm}{xl;`NELV(kYz7uZB4") +def fetch_specific_model(model_name): + # return all local models + return ''.join(["TEST",model_name]) + ''' @name scheduler_run diff --git a/core/dataset.py b/core/dataset.py index eec0483..7e76644 100644 --- a/core/dataset.py +++ b/core/dataset.py @@ -23,6 +23,8 @@ import numpy as np from typing import Dict, Tuple, Sequence, List from enum import Enum +import requests +import json #from process import DataSourceFileType ''' @@ -91,21 +93,21 @@ class LogSourceType(Enum): ES = "es" ''' -@name DatasetPrior +@name DatasetReadFromDiskPrior @description take beh ''' -class DatasetLogPrior: +class DatasetReadFromDiskPrior: def __init__(self, function): self.function = function ''' - @name DatasetLogPrior.__call__ + @name DatasetReadFromDiskPrior.__call__ @description call before read_from_disk, after dataframe is assigned to class's public memory ''' def __call__(self, *args) -> None: log_message = args[1] # last param - logging.info("[DatasetLogPrior Log Message] "+log_message) + logging.info("[DatasetReadFromDiskPrior Log Message] "+log_message) logging.warning("args[0]: "+str(args[0])) self.function(args[0]) @@ -154,6 +156,7 @@ def read(self) -> None: self.read_from_disk(self, "Reading from disk for CSV") elif self.location_type == LogSourceType.HDFS.value: # read from hdfs + self.read_from_hdfs(self, "Reading from hdfs for CSV") pass else: raise Exception("location_type "+self.location_type+" is not supported in CSV") @@ -171,7 +174,7 @@ def get_size(self) -> Tuple: @name read_from_disk @description read from disk, and set to CSVs dataframe ''' - @DatasetLogPrior + @DatasetReadFromDiskPrior def read_from_disk(self) -> None: logging.info("Trying: "+str(self.file_location)) @@ -199,10 +202,73 @@ def read_from_disk(self) -> None: @name read_from_hdfs @description read from hdfs, and set to CSVs dataframe ''' - @DatasetLogPrior + @DatasetReadFromDiskPrior # TODO: make DatasetReadFromHDFSPrior def read_from_hdfs(self) -> None: + # load csv from hdfs + df = pd.DataFrame([["a, b"],["b","c"]], columns=["index", "cs-username"]) + self.dataframe = CoreDataFrame( df ) pass +''' +@name Parquet - child of Dataset +@description to handle parquet files +''' +class Parquet(Dataset): + def __init__(self): + pass + + ''' + - if the data is NOT in hadoop, read with pandas + - if the data is in hadoop, read with sparkcsv + ''' + def read(self) -> None: + logging.info("Reading Parquet") + if self.location_type == LogSourceType.DISK.value: + self.read_from_disk(self, "Reading from disk for Parquet") + elif self.location_type == LogSourceType.HDFS.value: + # read from hdfs + self.read_from_hdfs(self, "Reading from hdfs for Parquet") + else: + raise Exception("location_type "+self.location_type+" is not supported in Parquet") + + + ''' + @name read_from_disk + @description read from disk, and set to Parquets dataframe + ''' + def read_from_disk(self) -> None: + pass + + ''' + @name read_from_hdfs + @description read from HDFS, and set to Parquets dataframe + ''' + def read_from_hdfs(self) -> None: + pass + +''' +@name ES - child of Dataset +@description to handle elastic datasets +''' +class ES(Dataset): + def __init__(self, host: str): + + self.host: str = host + self.payload: dict = { "query": { "match-all": {} }} + self.header_set: dict = {"content-type": "application/json"} + + ''' + @name read + @description read data from the ES index + ''' + def read(self) -> None: + logging.info("Reading ES index") + x = requests.get(self.host, data = json.dumps( self.payload ), headers = self.header_set) + logging.info("ES: status code: "+str( x.status_code )) + logging.info( x.raw.headers ) + self.dataframe = CoreDataFrame( x.content.decode() ) + + ''' @name DatasetSession @@ -219,20 +285,43 @@ def __init__(self, type: str): ''' def read_csv(self, data_folder: str, folder: str, location_type: str, delimiter: str) -> None: logging.info("Dataset_Session: read_csv") - self.dataset: CSV = CSV(data_folder, folder, location_type, delimiter) + self.csv_dataset: CSV = CSV(data_folder, folder, location_type, delimiter) + #new_dataset: CSV = CSV(data_folder, folder, location_type, delimiter) + # load into class dataset field, read from parent class, not child + self.csv_dataset.read() + #new_dataset.read() + + ''' + @name read_parquet + @description load the csv into the dataset sessions's dataset object + ''' + def read_parquet(self, data_folder: str, folder: str, location_type: str, delimiter: str) -> None: + logging.info("Dataset_Session: read_parquet") + self.parquet_dataset: Parquet = Parquet(data_folder, folder, location_type, delimiter) # load into class dataset field, read from parent class, not child - self.dataset.read() + self.parquet_dataset.read() + + + ''' + @name read_es_index + @description fetch documents from an es index + ''' + def read_es_index(self, host: str, query: str): + logging.info("Dataset_Session: read_es_index") + self.es_dataset: ES = ES(host) + self.es_dataset.read() + ''' @name get_size @description get size of dataset_session's dataset object ''' - def get_size(self) -> Tuple: - return self.dataset.get_size() + def get_csv_size(self) -> Tuple: + return self.csv_dataset.get_size() ''' @name get_dataset @description get dataset_session's dataset object ''' - def get_dataset(self) -> Dataset: - return self.dataset + def get_csv_dataset(self) -> Dataset: + return self.csv_dataset diff --git a/core/model.py b/core/model.py index ab7384b..abfe0d1 100644 --- a/core/model.py +++ b/core/model.py @@ -56,6 +56,11 @@ class ModelComponent(Enum): class ModelDataLoader(Enum): LOCAL_PANDAS_CSV = "local_pandas_csv" LOCAL_PANDAS_PARQUET = "local_pandas_parquet" + HDFS_PANDAS_CSV = "HDFS_pandas_csv" + HDFS_PANDAS_PARQUET = "HDFS_pandas_parquet" + HDFS_SPARK_CSV = "HDFS_spark_csv" + HDFS_SPARK_PARQUET = "HDFS_spark_parquet" + ES_GENERIC = "ES_generic" ''' @name ModelReturnType @@ -72,6 +77,8 @@ class Model(): def __init__(self, metadata: dict, dataframe: CoreDataFrame = None): self.data: dict = metadata self.dataframe = dataframe + # TODO dataframe should be dataframes + # also, it should be a dict to hold many dataframes pass def run(self): @@ -128,11 +135,72 @@ def execute(self): 'warn_bad_lines': False } - loaded_data: CoreDataFrame = model_modules.LocalPandasCSV(model_group_dataloader_context["file_location"], **args).data + loaded_data: CoreDataFrame = model_modules.LocalPandasCSV(model_group_dataloader_context["file_location"], model_group_dataloader_context["file"], **args).data print(loaded_data.data) elif model_group_dataloader == ModelDataLoader.LOCAL_PANDAS_PARQUET.value: - # TODO: parquet logic + # TODO: parquet logic\ + + args: dict = { + 'sep': ' ', + 'header': 0, + 'error_bad_lines': False, + 'warn_bad_lines': False + } + + loaded_data: CoreDataFrame = model_modules.LocalPandasParquet(model_group_dataloader_context["file_location"], **args).data + print(loaded_data.data) + + pass + + elif model_group_dataloader == ModelDataLoader.HDFS_PANDAS_CSV.value: + #https://creativedata.atlassian.net/wiki/spaces/SAP/pages/61177860/Python+-+Read+Write+files+from+HDFS + # TODO: HDFS CSV logic + args: dict = { + 'host': 'http://localhost:6200' + } + + loaded_data: CoreDataFrame = model_modules.HDFSPandasCSV(model_group_dataloader_context["file_location"], **args).data + print(loaded_data.data) + pass + elif model_group_dataloader == ModelDataLoader.HDFS_PANDAS_PARQUET.value: + # TODO: HDFS pandas parquet logic + args: dict = { + 'host': 'http://localhost:6200' + } + + loaded_data: CoreDataFrame = model_modules.HDFSPandasParquet(model_group_dataloader_context["file_location"], **args).data + print(loaded_data.data) + pass + + elif model_group_dataloader == ModelDataLoader.HDFS_SPARK_CSV.value: + # TODO: HDFS spark csv logic + args: dict = { + 'host': 'http://localhost:6200' + } + + loaded_data: CoreDataFrame = model_modules.HDFSSparkCSV(model_group_dataloader_context["file_location"], **args).data + print(loaded_data.data) + pass + elif model_group_dataloader == ModelDataLoader.HDFS_SPARK_PARQUET.value: + # TODO: HDFS spark parquet logic + args: dict = { + 'host': 'http://localhost:6200' + } + + loaded_data: CoreDataFrame = model_modules.HDFSSparkParquet(model_group_dataloader_context["file_location"], **args).data + print(loaded_data.data) + pass + + elif model_group_dataloader == ModelDataLoader.ES_GENERIC.value: + + # TODO: elastic search query logic + args: dict = { + 'query': 'QUERY' + } + + loaded_data: CoreDataFrame = model_modules.ESGeneric(model_group_dataloader_context["host"], **args).data + print(loaded_data.data) pass else: @@ -155,6 +223,7 @@ def execute(self): logging.info("Model enabled: "+str(model_metadata["model_name"])) model_session = ModelSession(model_metadata, self.library) + # TODO: new thread # start model session job model_result: dict = model_session.start_job(loaded_data) @@ -169,6 +238,7 @@ def execute(self): if model_return_type == ModelReturnType.USER_RISKS.value: # TODO: handle user_risks object # FOR EACH user in USER_RISKS + # for user_from_model in model_result["users"] # write user risk profile to DB pass @@ -179,6 +249,7 @@ def execute(self): logging.warning("Model is NOT enabled: "+str(model_metadata["model_name"])) pass + # TODO: Iterate over rules? # end model group @@ -273,6 +344,8 @@ def run_model(self, model: Model) -> dict: import MODEL # execute model try: + # TODO pass model to execution process + # model_result: dict = MODEL.execute(model) model_result: dict = MODEL.execute() except Exception as e: logging.error("Model Execution Failed: "+str(model.data["model_name"])+" Reason: "+str(e)) diff --git a/core/model_library/model_simple_re/MODEL.py b/core/model_library/model_simple_re/MODEL.py new file mode 100644 index 0000000..2800290 --- /dev/null +++ b/core/model_library/model_simple_re/MODEL.py @@ -0,0 +1,14 @@ +from model_modules import test_module + +# need to expose execute +def execute(): + print("model_test testing... before disk") + return_object: dict = dict() + test_module.Execute() + for x in range(0,100000): + return_object[x] = { + "value": "test" + } + + print("model end run..................") + return return_object diff --git a/core/model_library/model_simple_re/__init__.py b/core/model_library/model_simple_re/__init__.py new file mode 100644 index 0000000..292c4e0 --- /dev/null +++ b/core/model_library/model_simple_re/__init__.py @@ -0,0 +1,2 @@ +# need to import .MODEL +from .MODEL import execute diff --git a/core/model_library/model_simple_re_pyspark/MODEL.py b/core/model_library/model_simple_re_pyspark/MODEL.py new file mode 100644 index 0000000..2800290 --- /dev/null +++ b/core/model_library/model_simple_re_pyspark/MODEL.py @@ -0,0 +1,14 @@ +from model_modules import test_module + +# need to expose execute +def execute(): + print("model_test testing... before disk") + return_object: dict = dict() + test_module.Execute() + for x in range(0,100000): + return_object[x] = { + "value": "test" + } + + print("model end run..................") + return return_object diff --git a/core/model_library/model_simple_re_pyspark/__init__.py b/core/model_library/model_simple_re_pyspark/__init__.py new file mode 100644 index 0000000..292c4e0 --- /dev/null +++ b/core/model_library/model_simple_re_pyspark/__init__.py @@ -0,0 +1,2 @@ +# need to import .MODEL +from .MODEL import execute diff --git a/core/model_library/model_sk_pickle/MODEL.py b/core/model_library/model_sk_pickle/MODEL.py new file mode 100644 index 0000000..2800290 --- /dev/null +++ b/core/model_library/model_sk_pickle/MODEL.py @@ -0,0 +1,14 @@ +from model_modules import test_module + +# need to expose execute +def execute(): + print("model_test testing... before disk") + return_object: dict = dict() + test_module.Execute() + for x in range(0,100000): + return_object[x] = { + "value": "test" + } + + print("model end run..................") + return return_object diff --git a/core/model_library/model_sk_pickle/__init__.py b/core/model_library/model_sk_pickle/__init__.py new file mode 100644 index 0000000..292c4e0 --- /dev/null +++ b/core/model_library/model_sk_pickle/__init__.py @@ -0,0 +1,2 @@ +# need to import .MODEL +from .MODEL import execute diff --git a/core/model_library/model_tf_protobuf/MODEL.py b/core/model_library/model_tf_protobuf/MODEL.py new file mode 100644 index 0000000..2800290 --- /dev/null +++ b/core/model_library/model_tf_protobuf/MODEL.py @@ -0,0 +1,14 @@ +from model_modules import test_module + +# need to expose execute +def execute(): + print("model_test testing... before disk") + return_object: dict = dict() + test_module.Execute() + for x in range(0,100000): + return_object[x] = { + "value": "test" + } + + print("model end run..................") + return return_object diff --git a/core/model_library/model_tf_protobuf/__init__.py b/core/model_library/model_tf_protobuf/__init__.py new file mode 100644 index 0000000..292c4e0 --- /dev/null +++ b/core/model_library/model_tf_protobuf/__init__.py @@ -0,0 +1,2 @@ +# need to import .MODEL +from .MODEL import execute diff --git a/core/model_modules/__init__.py b/core/model_modules/__init__.py index ac1dc45..9964481 100644 --- a/core/model_modules/__init__.py +++ b/core/model_modules/__init__.py @@ -1,2 +1,3 @@ from .test_module import Execute from .local_pandas import LocalPandasCSV +from .es import ESGeneric diff --git a/core/model_modules/es/__init__.py b/core/model_modules/es/__init__.py new file mode 100644 index 0000000..21a1ec9 --- /dev/null +++ b/core/model_modules/es/__init__.py @@ -0,0 +1 @@ +from .es import ESGeneric diff --git a/core/model_modules/es/es.py b/core/model_modules/es/es.py new file mode 100644 index 0000000..7b90b2f --- /dev/null +++ b/core/model_modules/es/es.py @@ -0,0 +1,10 @@ +from pandas import DataFrame +from dataset import DatasetSession, CoreDataFrame, ES + + +class ESGeneric(): + def __init__(self, host: str, query: str): + + dataset_session: DatasetSession = DatasetSession("es") + dataset_session.read_es_index(host, query) + self.data: DataFrame = CoreDataFrame(dataset_session.es_dataset.dataframe) diff --git a/core/model_modules/local_pandas/local_pandas.py b/core/model_modules/local_pandas/local_pandas.py index a073a1a..fc33f89 100644 --- a/core/model_modules/local_pandas/local_pandas.py +++ b/core/model_modules/local_pandas/local_pandas.py @@ -4,6 +4,7 @@ class LocalPandasCSV(): def __init__(self, file_path: str, + file: str, sep: str, header: int, error_bad_lines: bool, @@ -11,6 +12,25 @@ def __init__(self, dataset_session: DatasetSession = DatasetSession("disk") + file_location: str = ''.join([file_path, file]) + dataset_session.read_csv("../test_datasets/toy_1", "proxy", "disk", sep) - self.data: DataFrame = CoreDataFrame(dataset_session.dataset.dataframe) + #assign data + self.data: DataFrame = CoreDataFrame(dataset_session.csv_dataset.dataframe) + +class LocalPandasParquet(): + def __init__(self, + file_path: str, + sep: str, + header: int, + error_bad_lines: bool, + warn_bad_lines: bool): + + # + dataset_session: DatasetSession = DatasetSession("disk") + + dataset_session.read_parquet("../test_datasets/toy_1", "proxy", "disk", sep) + + #assign data + #self.data: DataFrame = CoreDataFrame(dataset_session.parquet_dataset.dataframe) diff --git a/core/model_test.py b/core/model_test.py new file mode 100644 index 0000000..7b9166b --- /dev/null +++ b/core/model_test.py @@ -0,0 +1,29 @@ +''' +Copyright 2019-Present The OpenUBA Platform Authors +This file is part of the OpenUBA Platform library. +The OpenUBA Platform is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. +The OpenUBA Platform is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. +You should have received a copy of the GNU Lesser General Public License +along with the OpenUBA Platform. If not, see . +''' + + + +import unittest + +''' +@name ModelTestCase +@description this is the test case for all Model classes +''' +class ModelTestCase(unittest.TestCase): + def setUp(self): + pass + + def test_model(self): + pass diff --git a/core/process.py b/core/process.py index 75c55a2..513b27c 100644 --- a/core/process.py +++ b/core/process.py @@ -63,25 +63,31 @@ def __init__(self): def execute(self) -> bool: logging.info("executing process engine") loaded_data_scheme: dict = ReadJSONFileFS(DATASET_SCEME_URL).data - data_folder = loaded_data_scheme["folder"] - # load data from scheme above - for log_obj in loaded_data_scheme["data"]: + # for each data source_group + for source_group in loaded_data_scheme["source_groups"]: - # TODO: load dataset index file holding dataset statuses + data_folder = source_group["folder"] - #TODO: load "unprocessed" datasets, mostly by scheme set above in dataset_scheme + # load data from scheme above + for log_obj in source_group["data"]: - # get the new dataframe - log_file_dataset_session: DatasetSession = self.process_data(data_folder, log_obj) + logging.info("Process: model Log_obj: "+str(log_obj["log_name"])) + # TODO: load dataset index file holding dataset statuses - #TODO: with the CoreDataFrame from process data, perform user/entity analysis/extraction - extracted_users: UserSet = ExtractAllUsersCSV.get(log_file_dataset_session, log_obj) - logging.info("ProcessEngine, execute, extracted_users: "+str(extracted_users.users[:2])) + #TODO: load "unprocessed" datasets, mostly by scheme set above in dataset_scheme - # store the extracted users, or update the storage - # extracted_users.set_of_users - #TODO: mark log_obj as processed afterwards + # get the new dataframe + log_file_dataset_session: DatasetSession = self.process_data(data_folder, log_obj) + + #TODO: with the CoreDataFrame from process data, perform user/entity analysis/extraction + extracted_users: UserSet = ExtractAllUsersCSV.get(log_file_dataset_session, log_obj) + test_user: str = str(list(extracted_users.users.keys())[:2]) + logging.info("ProcessEngine, execute, extracted_users, test user: "+test_user) + + # store the extracted users, or update the storage + # extracted_users.set_of_users + #TODO: mark log_obj as processed afterwards # get entities @@ -122,8 +128,8 @@ def process_data(self, data_folder: str, log_data_obj: dict) -> DatasetSession: # invoke datasetsession to read the csv dataset_session.read_csv(data_folder, folder, location_type, delimiter) # load - print( "isinstance(dataset_session.dataset, Dataset): "+str(isinstance(dataset_session.dataset, Dataset)) ) - dataset_size: Tuple = dataset_session.get_size() + print( "isinstance(dataset_session.dataset, Dataset): "+str(isinstance(dataset_session.csv_dataset, Dataset)) ) + dataset_size: Tuple = dataset_session.get_csv_size() logging.info( "Dataset Session size: "+str(dataset_size) ) elif log_type == DataSourceFileType.FLAT.value: diff --git a/core/risk.py b/core/risk.py index 34e876c..594aad9 100644 --- a/core/risk.py +++ b/core/risk.py @@ -22,3 +22,11 @@ class RiskJob(): def __init__(self): logging.info("RiskJob is initiated") + +class RiskScore(): + def __init__(self): + pass + + def calculate(self): + # TODO: simple summation with weighting + pass diff --git a/core/rule.py b/core/rule.py new file mode 100644 index 0000000..1160f03 --- /dev/null +++ b/core/rule.py @@ -0,0 +1,14 @@ +''' +Copyright 2019-Present The OpenUBA Platform Authors +This file is part of the OpenUBA Platform library. +The OpenUBA Platform is free software: you can redistribute it and/or modify +it under the terms of the GNU Lesser General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. +The OpenUBA Platform is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Lesser General Public License for more details. +You should have received a copy of the GNU Lesser General Public License +along with the OpenUBA Platform. If not, see . +''' diff --git a/core/storage/model_sessions.json b/core/storage/model_sessions.json index 99435fb..a6f69a6 100644 --- a/core/storage/model_sessions.json +++ b/core/storage/model_sessions.json @@ -2,12 +2,17 @@ "session": { "model_name": "model_1", "description": "blank", + "mitre_tactic": "", + "mitre_technique_name": "", + "mitre_technique_id": "T1010", "enabled": true, "root": "ANJKD8aioh8wonsLAS9HWOI", "return": { "return_type": "user_risks", "artifacts": [] }, + "score": 10, + "model_context": {}, "components": [ { "type": "external", @@ -25,5 +30,5 @@ } ] }, - "timestamp": "2020-05-13 16:31:01" + "timestamp": "2020-05-23 03:46:17" } \ No newline at end of file diff --git a/core/storage/models.json b/core/storage/models.json index e20796f..1b666cd 100644 --- a/core/storage/models.json +++ b/core/storage/models.json @@ -4,21 +4,37 @@ "data_loader": { "data_loader_type": "local_pandas_csv", "data_loader_context": { - "file_location": "../test_datasets/toy_1/proxy/bluecoat.log" + "file_location": "../test_datasets/toy_1/proxy/", + "file": "bluecoat.log" } }, - "conditions": [ - { - "condition_name": "sample_condition_one", - "features": "cs-username|cs-username", - "condition": "parameter1 == 'alice' and parameter2 != 'bob'", - "score": 10 - } - ], + "model_group_context": { + "rules": [ + { + "condition_name": "sample_condition_one", + "condition_description": "simple OR pattern match", + "features": "cs-username|cs-username", + "condition": "parameter1 == 'alice' and parameter2 != 'bob'", + "condition_type": "single-fire", + "score": 10 + }, + { + "condition_name": "sample_condition_two", + "condition_description": "simple +/- std", + "features": "cs-username|cs-username", + "condition": "(param_mean > (param_metric + param_range)) or (param_mean < (param_metric - param_range)) ", + "condition_type": "deviation", + "score": 20 + } + ] + }, "models": [ { "model_name": "model_test", "description": "blank", + "mitre_tactic": "", + "mitre_technique_name": "", + "mitre_technique_id": "T1010", "enabled": true, "root": "ANJKD8aioh8wonsLAS9HWOI", "return": { @@ -26,6 +42,9 @@ "artifacts": [] }, "score": 10, + "model_context": { + + }, "components": [ { "type": "external", @@ -46,11 +65,18 @@ { "model_name": "model_1", "description": "blank", + "mitre_tactic": "", + "mitre_technique_name": "", + "mitre_technique_id": "T1010", "enabled": true, "root": "ANJKD8aioh8wonsLAS9HWOI", "return": { "return_type": "user_risks", "artifacts": [] + }, + "score": 10, + "model_context": { + }, "components": [ { @@ -70,5 +96,69 @@ ] } ] + }, + "MODEL_TEST_GROUP_2": { + "group_name": "MODEL_TEST_GROUP_2", + "data_loader": { + "data_loader_type": "ES_generic", + "data_loader_context": { + "host": "http://localhost:62000" + } + }, + "model_group_context": { + "rules": [ + { + "condition_name": "sample_condition_one", + "condition_description": "simple OR pattern match", + "features": "cs-username|cs-username", + "condition": "parameter1 == 'alice' and parameter2 != 'bob'", + "condition_type": "single-fire", + "score": 10 + }, + { + "condition_name": "sample_condition_two", + "condition_description": "simple +/- std", + "features": "cs-username|cs-username", + "condition": "(param_mean > (param_metric + param_range)) or (param_mean < (param_metric - param_range)) ", + "condition_type": "deviation", + "score": 20 + } + ] + }, + "models": [ + { + "model_name": "model_test", + "description": "blank", + "mitre_tactic": "", + "mitre_technique_name": "", + "mitre_technique_id": "T1010", + "enabled": true, + "root": "ANJKD8aioh8wonsLAS9HWOI", + "return": { + "return_type": "user_risks", + "artifacts": [] + }, + "score": 10, + "model_context": { + + }, + "components": [ + { + "type": "external", + "filename": "__init__.py", + "data_hash": "bb359488ff009930fdb409b2e37d2770fa302e249aae9fb277ed56a04f1ce750", + "file_hash": "8856500188054fcfc51011fbc57bd667b8f9a70d58b5ce40d4ca3ade9b5caac6", + "file_payload": "IyBuZWVkIHRvIGltcG9ydCAuTU9ERUwKZnJvbSAuTU9ERUwgaW1wb3J0IGV4ZWN1dGUK" + }, + { + "type": "external", + "filename": "MODEL.py", + "data_hash": "c91569ef18120310e433645d54eaddc4fa72bf5a0613a1e13a3e75d2abda665f", + "file_hash": "585a2c07d4644acb0da61202490cafb99a58570dc9861b14426576f54350fdc6", + "file_payload": "IyBuZWVkIHRvIGV4cG9zZSBleGVjdXRlCmRlZiBleGVjdXRlKCk6CglwcmludCgibW9kZWxfdGVzdCB0ZXN0aW5nLi4uIikKCXJldHVybl9vYmplY3Q6IGRpY3QgPSB7fQoKCWZvciB4IGluIHJhbmdlKDAsMTAwMDAwKToKCQlyZXR1cm5fb2JqZWN0W3hdID0gewoJCQkidmFsdWUiOiAidGVzdCIKCQl9CgoJcHJpbnQoIm1vZGVsIGVuZCBydW4uLiIpCglyZXR1cm4gcmV0dXJuX29iamVjdAo=" + } + ] + } + ] } } diff --git a/core/storage/scheme.json b/core/storage/scheme.json index df84ccf..14d3a8a 100644 --- a/core/storage/scheme.json +++ b/core/storage/scheme.json @@ -1,17 +1,36 @@ { - "mode": "test", - "folder": "../test_datasets/toy_1", - "type": "local_folder", - "data": - [ - { - "log_name": "proxy", - "type": "csv", - "delimiter": " ", - "location_type": "disk", - "folder": "proxy", - "id_feature": "cs-username", - "filename_scheme": "mm-dd-yyy" + "source_groups": [ + { + "source_group_name": "source_group_1", + "mode": "test", + "folder": "../test_datasets/toy_1", + "type": "local_folder", + "data": [ + { + "log_name": "proxy_disk", + "type": "csv", + "delimiter": " ", + "location_type": "disk", + "folder": "proxy", + "id_feature": "cs-username", + "filename_scheme": { + "type": "date", + "scheme": "mm-dd-yyy" } - ] + }, + { + "log_name": "proxy_hdfs", + "type": "csv", + "delimiter": " ", + "location_type": "hdfs", + "folder": "proxy", + "id_feature": "cs-username", + "filename_scheme": { + "type": "date", + "scheme": "mm-dd-yyy" + } + } + ] + } + ] } diff --git a/core/storage/settings.json b/core/storage/settings.json new file mode 100644 index 0000000..eec200f --- /dev/null +++ b/core/storage/settings.json @@ -0,0 +1,5 @@ +{ + "anomaly_output": { + "type": "flat" + } +} diff --git a/core/storage/users.json b/core/storage/users.json index f58ad53..250a0f7 100644 --- a/core/storage/users.json +++ b/core/storage/users.json @@ -1,9 +1,10 @@ { - "users": [ - "DEFAULT_PARENT", - "DIRECT", - "NA", - "NONE", - "cs-username" - ] + "users": { + "NA": {}, + "c": {}, + "DEFAULT_PARENT": {}, + "DIRECT": {}, + "NONE": {}, + "cs-username": {} + } } \ No newline at end of file diff --git a/core/user.py b/core/user.py index 173856e..15efecb 100644 --- a/core/user.py +++ b/core/user.py @@ -37,8 +37,8 @@ def __init__(self, user_id): @description wrapper to hold a set of users ''' class UserSet(): - def __init__(self, set_of_users: List): - self.users: List = set_of_users + def __init__(self, users_dict: dict): + self.users: dict = users_dict ''' @@ -51,15 +51,36 @@ def __init__(self, set_of_users: List): ''' class WriteUserSet(DBWriteFile): @staticmethod - def write(user_set: UserSet): - data: dict = {"users": [u.user_id for u in user_set.users]} + def write(new_user_set: UserSet): + # TODO: don't overwrite user set each time, just insert new keys + current_user_set: UserSet = ReadUserSet.read() + + # iteratively add user to UserSet + for user in new_user_set.users.keys(): + # TODO: check if user exists + logging.error(user) + current_user_set.users[user] = {} + + #data: dict = {"users": [u.user_id for u in new_user_set.users]} + # no list compresension since its a dict + data: dict = {"users": current_user_set.users} users_file_location: str = USERS_FILE_LOCATION # write JSON object for user set WriteJSONFileFS(data, users_file_location) #TODO: write users to unique directory - WriteListToDirectories(data["users"], "storage/users") + try: + user_list: List = list( data["users"].keys() ) + try: + WriteListToDirectories(user_list, "storage/users") + except Exception as e: + logging.error(''.join( [str(e), str(" -- ")] )) + raise e + except Exception as e: + logging.error(''.join( [str(e), str(" -- could not convert data['users'].keys() ")] )) + + ''' @name ReadUserSet @@ -67,10 +88,11 @@ def write(user_set: UserSet): ''' class ReadUserSet(DBReadFile): @staticmethod - def read(user_set: UserSet) -> UserSet: + def read() -> UserSet: users_file_location: str = USERS_FILE_LOCATION user_dict: dict = ReadJSONFileFS(users_file_location).data - return UserSet(list(user_dict.keys())) + #return UserSet( list(user_dict.keys()) ) + return UserSet( user_dict["users"] ) ''' @@ -116,7 +138,7 @@ def get(log_dataset_session: DatasetSession, log_metadata_obj: dict) -> UserSet: def extract_users(dataset_session: DatasetSession, log_metadata_obj: dict) -> List: ############## TESTS # get dataset - log_file_dataset: Dataset = dataset_session.get_dataset() + log_file_dataset: Dataset = dataset_session.get_csv_dataset() # get core dataframe log_file_core_dataframe: CoreDataFrame = log_file_dataset.get_dataframe() # get data frame (.data) @@ -145,5 +167,9 @@ def extract_users(dataset_session: DatasetSession, log_metadata_obj: dict) -> Li @staticmethod def from_raw_list(user_set: List) -> UserSet: # iterate over user_set list - set_of_users: List = [User(u) for u in user_set] - return UserSet(set_of_users) + #set_of_users: List = [User(u) for u in user_set] + user_dict: dict = {} + for u in user_set: + user_dict[u] = {} + #return UserSet(set_of_users) + return UserSet(user_dict) diff --git a/docs/INSTALL.md b/docs/INSTALL.md index ebcd9a7..e0dd830 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -69,6 +69,12 @@ From this point, running the following command will server the static HTML make uis # UI server ``` +# Electron app +To start the electron app, run +```bash +make electron +``` + # Installing ELK on mac https://logz.io/blog/elk-mac/ diff --git a/interface/preload.js b/interface/preload.js index 40d7ecf..16ffc4c 100644 --- a/interface/preload.js +++ b/interface/preload.js @@ -1 +1,2 @@ +// preload electron environment into frontend window.ipcRenderer = require('electron').ipcRenderer; diff --git a/interface/server.js b/interface/server.js index ae24bf9..41c09fc 100644 --- a/interface/server.js +++ b/interface/server.js @@ -87,15 +87,21 @@ app.on('activate', () => { } }) -///////////////// ipcMain.on('global_call_message', (event, arg) => { - console.log("") + console.log("global_call_message") + event.sender.send('global_call_reply', { "Result": result }); }) -///// END ELECTRON +ipcMain.on('model_library_search_call_message', (event, arg) => { + console.log("model_library_search_call_message") + console.log(arg) + event.sender.send('model_library_search_call_reply', { "Result": "RESULT" }); +}) -//add the router -//app.use('/', router); -//app.listen(process.env.port || 3001); +ipcMain.on('local_search_call_message', (event, arg) => { + console.log("local_search_call_message") + console.log(arg) + event.sender.send('local_search_call_reply', { "Result": "RESULT" }); +}) console.log('Running UI server at 3001'); diff --git a/interface/src/Components/Common/SystemLog/SystemLog.js b/interface/src/Components/Common/SystemLog/SystemLog.js index 7f89951..d4b1955 100644 --- a/interface/src/Components/Common/SystemLog/SystemLog.js +++ b/interface/src/Components/Common/SystemLog/SystemLog.js @@ -1,25 +1,33 @@ import React from 'react'; import {SystemLogContext} from './Contexts/SystemLogContext' +import {Toast, Container, Row, Col, Button, Card} from 'react-bootstrap' + /* @name SystemLogStatus @ddescription consumer for system log status */ -class SystemLogStatus extends React.Component { - render(){ - console.log("rendering system log") - return ( - - {({system_log_status}) => ( + + +//class SystemLogStatus extends React.Component { +const SystemLogStatus = (props) => { + + const [show, setShow] = React.useState(false); + + return ( + + {({system_log_status}) => ( + <>

System Status From Server: {system_log_status}

- )} -
- ) - } + + )} +
+ ) } + /* @name SystemLog @description component as provider for system log status @@ -70,17 +78,25 @@ class SystemLog extends React.Component { console.log("rendering system log") return ( -
-
-
-
-
- -
-
-
-
-
+ + + + + + + + + + + + + + + + + + +
) } diff --git a/interface/src/Components/Content/views/Home/Home.js b/interface/src/Components/Content/views/Home/Home.js index 2f8f92e..53bf25b 100644 --- a/interface/src/Components/Content/views/Home/Home.js +++ b/interface/src/Components/Content/views/Home/Home.js @@ -14,9 +14,8 @@ along with the OpenUBA Platform. If not, see . */ import React from 'react'; import {HomeSummaryContext} from './Contexts/HomeSummaryContext' -import Badge from 'react-bootstrap/Badge'; -import Spinner from 'react-bootstrap/Spinner'; -import ListGroup from 'react-bootstrap/ListGroup'; +import {Badge, Spinner, ListGroup, Row, Col, Container, Card} from 'react-bootstrap'; + /* @@ -55,15 +54,7 @@ class HomeSummary extends React.Component { async loadMonitoredUsers() { try{ - // TODO: call API for monitored users count - - //let complete_endpoint = this.API_SERVER+"/display/get_all_entities" - //const res = await fetch(complete_endpoint) - //const json_response = await res.json() - //this.setState({ - // monitored_users_count: this.state.system_log_status + 1 - //}); }catch(e){ @@ -79,56 +70,50 @@ class HomeSummary extends React.Component { console.log("Rendering HomeSummary") return ( -
- - -
-
-
-
-

- Summary - - Loading... - -

-
- {/*
*/} -
- {/* Load monitored user */} -
-
- Monitored Users: -
-
- {/*load highest risk*/} -
-
- High Risk: - 100 -
-
- {/*load users discovere*/} -
-
- Users Discovered from events: - 100 -
-
- {/*load users imported*/} -
-
- Users imported from directory: - 100 -
-
-
-
-
-
-
- -
+ + + + + +

+ Summary +

+
+ + + + + +
+ Monitored Users: +
+ + +
+ High Risk: + 100 +
+ + +
+ Users Discovered from events: + 100 +
+ + +
+ Users imported from directory: + 100 +
+ +
+
+
+
+
+ +
+
) } @@ -147,70 +132,6 @@ const Separator = () => (
) - -/* -@name HomeSecondRow -@ddescription component to hold the second row on home -*/ -const HomeSecondRow = () => ( -
- - {/*********************Monitored users*/} -
-

Monitored Users

- - - User 1 -

Score: 14

-
- - User 2 -

Score: 14

-
- - User 3 -

Score: 14

-
-
-
- - {/*********************recent offenses*/} -
-
-
-
-
-

Recent Anomalies

- - -

Offense 1

-

Score: 14

-
- -

Offense 1

-

Score: 14

-
- -

Offense 1

-

Score: 14

-
-
-
- - - - {/*********************recent offenses graph*/} -
-
-
- -
-
-
-
-
-) - /* @name Home @ddescription component to render the home partial @@ -220,56 +141,6 @@ const Home = () => ( -
- - -
- - - - - {/*END UNDER CONTENT*/}
diff --git a/interface/src/Components/Content/views/Models/Models.js b/interface/src/Components/Content/views/Models/Models.js index d1a7cf7..af2a4f1 100644 --- a/interface/src/Components/Content/views/Models/Models.js +++ b/interface/src/Components/Content/views/Models/Models.js @@ -1,88 +1,246 @@ import React from 'react'; -import Tabs from 'react-bootstrap/Tabs'; -import Tab from 'react-bootstrap/Tab'; -import ListGroup from 'react-bootstrap/ListGroup'; -import Spinner from 'react-bootstrap/Spinner'; - - - -const ModelSearchBar = () => ( -
-
-
-
-
- -
-
-
-
-) - -const ModelTabs = () => ( -
-
-
-
-
+import {Tabs, + Tab, + ListGroup, + Spinner, + Container, + Row, + Col, + Card, + InputGroup, + FormControl, + Button} from 'react-bootstrap'; + +/* +@name ModelContext +@description +*/ +export const ModelContext = React.createContext({ + model_library_search_term: "blank model library search term", + model_local_search_term: "blank model local search term" +}); + + +/* +@name ModelLibrarySearchBar +@description +*/ +class ModelLibrarySearchBar extends React.Component{ + render(props){ + return ( + <> + + + + + + + Search Model Library + + + + + + + + + + + + ) + } +} + +/* +@name +@description +*/ +class ModelLocalSearchBar extends React.Component{ + render(props){ + return ( + <> +
+ + + + + + + Search Local Models + + + + + + + + + + + + ) + } +} + +const ModelTabs = (props) => ( + + + + + +

Models

+
+ - - -
-
- -
-
-
+ +
+ + + + + + +

Results

Loading... -
-
-
+ + + -
-
+
+
- -

Installed Models

- - Model #1 - Model #2 - Model #3 - + + + + + + + + + Model #1 + Model #2 + Model #3 + + + + + +

Model Jobs Scheduler

- - Model #1 - Model #2 - Model #3 + + Job #1 + Job #2 + Job #3
-
-
-
-
-
+ + + + + ); -const Models = () => ( -
-

Models

+//const Models = () => ( +class Models extends React.Component { - {/* SEARCH BAR */} + constructor(props){ + super(props) -
- + // on change + this.handle_ml_search_term_change = this.handle_ml_search_term_change.bind(this); + this.handle_local_search_term_change = this.handle_local_search_term_change.bind(this); -
-); + //on submit + this.handle_ml_search_term_submit = this.handle_ml_search_term_submit.bind(this); + this.handle_local_search_term_submit = this.handle_local_search_term_submit.bind(this); + + + this.state = { + model_library_search_term: "blank model library search term", + model_local_search_term: "blank model local search term" + } + + } + + handle_ml_search_term_change(event){ + console.log("handle_ml_search_term_change") + this.setState({ + model_library_search_term: event.target.value + }) + event.preventDefault(); + } + + handle_local_search_term_change(event){ + console.log("handle_local_search_term_change") + this.setState({ + model_local_search_term: event.target.value + }) + event.preventDefault(); + } + + handle_ml_search_term_submit(event){ + console.log("handle_ml_search_term_submit") + // send ml search submit + window.ipcRenderer.send('model_library_search_call_message', this.state["model_library_search_term"]) + event.preventDefault(); + } + + handle_local_search_term_submit(event){ + console.log("handle_local_search_term_submit") + // send local search submit + window.ipcRenderer.send('local_search_call_message', this.state["model_local_search_term"]) + event.preventDefault(); + } + + async componentDidMount(props){ + //callback for model_library_search_call_reply + window.ipcRenderer.on('model_library_search_call_reply', (event, result) => { + console.log("model_library_search_call_reply returned result") + console.log(result) + }) + + //callback for local_search_call_reply + window.ipcRenderer.on('local_search_call_reply', (event, result) => { + console.log("local_search_call_reply returned result") + console.log(result) + }) + } + + render(props){ + return ( + + + {( {model_library_search_term} ) => ( + +
+ +
+ + )} +
+
+ ) + } +} export default Models; From 0f7459299fd489c03b54ff0e8a903ef02f37aba3 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Sat, 23 May 2020 04:02:06 -0400 Subject: [PATCH 04/16] removed docker UI metrics, not needed-v --- README.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/README.md b/README.md index 9c3dc42..2d9f1a3 100644 --- a/README.md +++ b/README.md @@ -18,10 +18,6 @@ To take it a step further, OUBA also makes use of a community driven marketplace | `Issues` | [![Issues](https://img.shields.io/github/issues/GACWR/OpenUBA.svg)](https://github.com/GACWR/OpenUBA/issues) | | `Closed Issues` | [![GitHub issues-closed](https://img.shields.io/github/issues-closed/GACWR/OpenUBA.svg)](https://GitHub.com/GACWR/OpenUBA/issues?q=is%3Aissue+is%3Aclosed) | | `Last Commit` | [![Last commit](https://img.shields.io/github/last-commit/GACWR/OpenUBA.svg)](https://github.com/GACWR/OpenUBA/commits/master) | -| `UI Docker Stars` | [![Docker Stars](https://img.shields.io/docker/stars/gacwr/openuba-ui.svg)](https://hub.docker.com/r/gacwr/openuba-ui) | -| `UI Docker Pulls` | [![Docker Pulls](https://img.shields.io/docker/pulls/gacwr/openuba-ui.svg)](https://hub.docker.com/r/gacwr/openuba-ui) | -| `UI Docker Automated` | [![Docker Automated](https://img.shields.io/docker/cloud/automated/gacwr/openuba-ui.svg)](https://hub.docker.com/r/gacwr/openuba-ui) | -| `UI Docker Build` | [![Docker Build](https://img.shields.io/docker/cloud/build/gacwr/openuba-ui.svg)](https://hub.docker.com/r/gacwr/openuba-ui) | | `Server Docker Stars` | [![Docker Stars](https://img.shields.io/docker/stars/gacwr/openuba-server.svg)](https://hub.docker.com/r/gacwr/openuba-server) | | `Server Docker Pulls` | [![Docker Pulls](https://img.shields.io/docker/pulls/gacwr/openuba-server.svg)](https://hub.docker.com/r/gacwr/openuba-server) | | `Server Docker Automated` | [![Docker Automated](https://img.shields.io/docker/cloud/automated/gacwr/openuba-server.svg)](https://hub.docker.com/r/gacwr/openuba-server) | From cf95309818088bf7beb0cd59090803e33f59bfa7 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Sat, 23 May 2020 04:35:01 -0400 Subject: [PATCH 05/16] fixed failing tests since last commit-v --- core/.mypy_cache/3.7/api.meta.json | 2 +- core/.mypy_cache/3.7/core.meta.json | 2 +- core/.mypy_cache/3.7/dataset.data.json | 2 +- core/.mypy_cache/3.7/dataset.meta.json | 2 +- core/.mypy_cache/3.7/dataset_test.meta.json | 2 +- core/.mypy_cache/3.7/model.meta.json | 2 +- core/.mypy_cache/3.7/process.meta.json | 2 +- core/.mypy_cache/3.7/process_test.meta.json | 2 +- core/.mypy_cache/3.7/test.meta.json | 2 +- core/.mypy_cache/3.7/user.meta.json | 2 +- core/.mypy_cache/3.7/user_test.meta.json | 2 +- core/__pycache__/dataset.cpython-37.pyc | Bin 8754 -> 9341 bytes core/__pycache__/dataset_test.cpython-37.pyc | Bin 2728 -> 2744 bytes core/__pycache__/process.cpython-37.pyc | Bin 3696 -> 3696 bytes core/dataset.py | 22 ++++++++++++------ core/dataset_test.py | 8 +++---- .../local_pandas/local_pandas.py | 2 +- core/process.py | 4 +++- core/storage/model_sessions.json | 10 ++++---- 19 files changed, 39 insertions(+), 29 deletions(-) diff --git a/core/.mypy_cache/3.7/api.meta.json b/core/.mypy_cache/3.7/api.meta.json index 27d367a..98bdac9 100644 --- a/core/.mypy_cache/3.7/api.meta.json +++ b/core/.mypy_cache/3.7/api.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219478, "dep_lines": [16, 17, 18, 19, 20, 21, 22, 23, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 5, 5, 10, 10, 5, 30, 30, 30, 30, 30], "dependencies": ["logging", "entity", "user", "enum", "display", "typing", "requests", "json", "builtins", "abc", "database", "json.encoder", "requests.models", "types"], "hash": "098e9deec1c9ac21b880dfc19daebc92", "id": "api", "ignore_all": false, "interface_hash": "46a418b7569afd0dec40bea940888dff", "mtime": 1588890541, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "api.py", "plugin_data": null, "size": 3311, "suppressed": [], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221816, "dep_lines": [16, 17, 18, 19, 20, 21, 22, 23, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 5, 5, 10, 10, 5, 30, 30, 30, 30], "dependencies": ["logging", "entity", "user", "enum", "display", "typing", "requests", "json", "builtins", "abc", "database", "json.encoder", "requests.models"], "hash": "098e9deec1c9ac21b880dfc19daebc92", "id": "api", "ignore_all": false, "interface_hash": "46a418b7569afd0dec40bea940888dff", "mtime": 1588890541, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "api.py", "plugin_data": null, "size": 3311, "suppressed": [], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/core.meta.json b/core/.mypy_cache/3.7/core.meta.json index b8f5796..73a13cb 100644 --- a/core/.mypy_cache/3.7/core.meta.json +++ b/core/.mypy_cache/3.7/core.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219554, "dep_lines": [21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 33, 1, 1, 1, 1, 1, 1, 1, 22, 34], "dep_prios": [5, 10, 10, 10, 5, 5, 5, 5, 5, 10, 10, 10, 5, 30, 30, 30, 30, 30, 30, 5, 10], "dependencies": ["flask", "logging", "threading", "time", "model", "test", "process", "api", "display", "unittest", "trace", "sys", "builtins", "abc", "flask.app", "flask.helpers", "flask.json", "types", "typing"], "hash": "e9bc7f8df654ea5ae5fbadf7697938c9", "id": "core", "ignore_all": false, "interface_hash": "ad2ac45ed9e95279f9cce0492273b787", "mtime": 1590218114, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "core.py", "plugin_data": null, "size": 5556, "suppressed": ["flask_cors", "coloredlogs"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221817, "dep_lines": [21, 23, 24, 25, 26, 27, 28, 29, 30, 32, 33, 33, 1, 1, 1, 1, 1, 1, 1, 1, 1, 22, 34], "dep_prios": [5, 10, 10, 10, 5, 5, 5, 5, 5, 10, 10, 10, 5, 20, 20, 30, 30, 30, 30, 30, 30, 5, 10], "dependencies": ["flask", "logging", "threading", "time", "model", "test", "process", "api", "display", "unittest", "trace", "sys", "builtins", "json", "requests", "abc", "flask.app", "flask.helpers", "flask.json", "types", "typing"], "hash": "e9bc7f8df654ea5ae5fbadf7697938c9", "id": "core", "ignore_all": false, "interface_hash": "ad2ac45ed9e95279f9cce0492273b787", "mtime": 1590218114, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "core.py", "plugin_data": null, "size": 5556, "suppressed": ["flask_cors", "coloredlogs"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/dataset.data.json b/core/.mypy_cache/3.7/dataset.data.json index 527ad13..2e53ec4 100644 --- a/core/.mypy_cache/3.7/dataset.data.json +++ b/core/.mypy_cache/3.7/dataset.data.json @@ -1 +1 @@ -{".class": "MypyFile", "_fullname": "dataset", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "CSV": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.CSV", "name": "CSV", "type_vars": []}, "flags": [], "fullname": "dataset.CSV", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.CSV", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.CSV.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.CSV", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CSV.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "delimiter": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CSV.delimiter", "name": "delimiter", "type": "builtins.str"}}, "get_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CSV.get_size", "name": "get_size", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_size of CSV", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.tuple"}, "variables": []}}}, "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CSV.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_from_disk": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.CSV.read_from_disk", "name": "read_from_disk", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_disk of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_disk", "type": "dataset.DatasetReadFromDiskPrior"}}}, "read_from_hdfs": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.CSV.read_from_hdfs", "name": "read_from_hdfs", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_hdfs of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_hdfs", "type": "dataset.DatasetReadFromDiskPrior"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "CoreDataFrame": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.CoreDataFrame", "name": "CoreDataFrame", "type_vars": []}, "flags": [], "fullname": "dataset.CoreDataFrame", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.CoreDataFrame", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "df"], "flags": [], "fullname": "dataset.CoreDataFrame.__init__", "name": "__init__", "type": null}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CoreDataFrame.data", "name": "data", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "get_unique_id_set": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CoreDataFrame.get_unique_id_set", "name": "get_unique_id_set", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_unique_id_set of CoreDataFrame", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dataset": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Parser"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Dataset", "name": "Dataset", "type_vars": []}, "flags": [], "fullname": "dataset.Dataset", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "flags": [], "fullname": "dataset.Dataset.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "arg_types": ["dataset.Dataset", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Dataset", "ret_type": {".class": "NoneType"}, "variables": []}}}, "file_location": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.Dataset.file_location", "name": "file_location", "type": "builtins.str"}}, "get_dataframe": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Dataset.get_dataframe", "name": "get_dataframe", "type": null}}, "location_type": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.Dataset.location_type", "name": "location_type", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetReadFromDiskPrior": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.DatasetReadFromDiskPrior", "name": "DatasetReadFromDiskPrior", "type_vars": []}, "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.DatasetReadFromDiskPrior", "builtins.object"], "names": {".class": "SymbolTable", "__call__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior.__call__", "name": "__call__", "type": {".class": "CallableType", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "arg_types": ["dataset.DatasetReadFromDiskPrior", {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__call__ of DatasetReadFromDiskPrior", "ret_type": {".class": "NoneType"}, "variables": []}}}, "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "function"], "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior.__init__", "name": "__init__", "type": null}}, "function": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior.function", "name": "function", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.DatasetSession", "name": "DatasetSession", "type_vars": []}, "flags": [], "fullname": "dataset.DatasetSession", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.DatasetSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "flags": [], "fullname": "dataset.DatasetSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "arg_types": ["dataset.DatasetSession", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "csv_dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.csv_dataset", "name": "csv_dataset", "type": "dataset.CSV"}}, "dataset_type": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.dataset_type", "name": "dataset_type", "type": "builtins.str"}}, "es_dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.es_dataset", "name": "es_dataset", "type": "dataset.ES"}}, "get_csv_dataset": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.DatasetSession.get_csv_dataset", "name": "get_csv_dataset", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.DatasetSession"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_csv_dataset of DatasetSession", "ret_type": "dataset.Dataset", "variables": []}}}, "get_csv_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.DatasetSession.get_csv_size", "name": "get_csv_size", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.DatasetSession"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_csv_size of DatasetSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.tuple"}, "variables": []}}}, "parquet_dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.parquet_dataset", "name": "parquet_dataset", "type": "dataset.CSV"}}, "read_csv": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.DatasetSession.read_csv", "name": "read_csv", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_csv of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_es_index": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "host", "query"], "flags": [], "fullname": "dataset.DatasetSession.read_es_index", "name": "read_es_index", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "host", "query"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_es_index of DatasetSession", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "read_parquet": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.DatasetSession.read_parquet", "name": "read_parquet", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_parquet of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dict": {".class": "SymbolTableNode", "cross_ref": "typing.Dict", "kind": "Gdef"}, "ES": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.ES", "name": "ES", "type_vars": []}, "flags": [], "fullname": "dataset.ES", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.ES", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "host"], "flags": [], "fullname": "dataset.ES.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "host"], "arg_types": ["dataset.ES", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ES", "ret_type": {".class": "NoneType"}, "variables": []}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.ES.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "header_set": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.ES.header_set", "name": "header_set", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "host": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.ES.host", "name": "host", "type": "builtins.str"}}, "payload": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.ES.payload", "name": "payload", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.ES.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.ES"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of ES", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "LogSourceType": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.LogSourceType", "name": "LogSourceType", "type_vars": []}, "flags": ["is_enum"], "fullname": "dataset.LogSourceType", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "dataset", "mro": ["dataset.LogSourceType", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "DISK": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.DISK", "name": "DISK", "type": "builtins.str"}}, "ES": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.ES", "name": "ES", "type": "builtins.str"}}, "HDFS": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.HDFS", "name": "HDFS", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Parquet": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Parquet", "name": "Parquet", "type_vars": []}, "flags": [], "fullname": "dataset.Parquet", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Parquet", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parquet.__init__", "name": "__init__", "type": null}}, "read_from_disk": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parquet.read_from_disk", "name": "read_from_disk", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.Parquet"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_disk of Parquet", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_from_hdfs": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parquet.read_from_hdfs", "name": "read_from_hdfs", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.Parquet"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_hdfs of Parquet", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Parser": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Parser", "name": "Parser", "type_vars": []}, "flags": [], "fullname": "dataset.Parser", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parser.__init__", "name": "__init__", "type": null}}, "split_record": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "record", "sep"], "flags": ["is_decorated"], "fullname": "dataset.Parser.split_record", "name": "split_record", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "record", "sep"], "arg_types": ["dataset.Parser", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "split_record of Parser", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "split_record", "type": "dataset.PriorSplitRecord"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "PriorSplitRecord": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.PriorSplitRecord", "name": "PriorSplitRecord", "type_vars": []}, "flags": [], "fullname": "dataset.PriorSplitRecord", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.PriorSplitRecord", "builtins.object"], "names": {".class": "SymbolTable", "__call__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "flags": [], "fullname": "dataset.PriorSplitRecord.__call__", "name": "__call__", "type": {".class": "CallableType", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "arg_types": ["dataset.PriorSplitRecord", {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__call__ of PriorSplitRecord", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}}, "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "function"], "flags": [], "fullname": "dataset.PriorSplitRecord.__init__", "name": "__init__", "type": null}}, "function": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.PriorSplitRecord.function", "name": "function", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Sequence": {".class": "SymbolTableNode", "cross_ref": "typing.Sequence", "kind": "Gdef"}, "Tuple": {".class": "SymbolTableNode", "cross_ref": "typing.Tuple", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__package__", "name": "__package__", "type": "builtins.str"}}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "np": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset.np", "name": "np", "type": {".class": "AnyType", "missing_import_name": "dataset.np", "source_any": null, "type_of_any": 3}}}, "pd": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset.pd", "name": "pd", "type": {".class": "AnyType", "missing_import_name": "dataset.pd", "source_any": null, "type_of_any": 3}}}, "requests": {".class": "SymbolTableNode", "cross_ref": "requests", "kind": "Gdef"}}, "path": "dataset.py"} \ No newline at end of file +{".class": "MypyFile", "_fullname": "dataset", "is_partial_stub_package": false, "is_stub": false, "names": {".class": "SymbolTable", "CSV": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.CSV", "name": "CSV", "type_vars": []}, "flags": [], "fullname": "dataset.CSV", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.CSV", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.CSV.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.CSV", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CSV.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "delimiter": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CSV.delimiter", "name": "delimiter", "type": "builtins.str"}}, "get_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CSV.get_size", "name": "get_size", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_size of CSV", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.tuple"}, "variables": []}}}, "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CSV.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_from_disk": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.CSV.read_from_disk", "name": "read_from_disk", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_disk of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_disk", "type": "dataset.DatasetReadFromDiskPrior"}}}, "read_from_hdfs": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.CSV.read_from_hdfs", "name": "read_from_hdfs", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CSV"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_hdfs of CSV", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_hdfs", "type": "dataset.DatasetReadFromDiskPrior"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "CoreDataFrame": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.CoreDataFrame", "name": "CoreDataFrame", "type_vars": []}, "flags": [], "fullname": "dataset.CoreDataFrame", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.CoreDataFrame", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "df"], "flags": [], "fullname": "dataset.CoreDataFrame.__init__", "name": "__init__", "type": null}}, "data": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.CoreDataFrame.data", "name": "data", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}, "get_unique_id_set": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.CoreDataFrame.get_unique_id_set", "name": "get_unique_id_set", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.CoreDataFrame"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_unique_id_set of CoreDataFrame", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dataset": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Parser"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Dataset", "name": "Dataset", "type_vars": []}, "flags": [], "fullname": "dataset.Dataset", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "flags": [], "fullname": "dataset.Dataset.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "arg_types": ["dataset.Dataset", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Dataset", "ret_type": {".class": "NoneType"}, "variables": []}}}, "file_location": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.Dataset.file_location", "name": "file_location", "type": "builtins.str"}}, "get_dataframe": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Dataset.get_dataframe", "name": "get_dataframe", "type": null}}, "location_type": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.Dataset.location_type", "name": "location_type", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetReadFromDiskPrior": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.DatasetReadFromDiskPrior", "name": "DatasetReadFromDiskPrior", "type_vars": []}, "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.DatasetReadFromDiskPrior", "builtins.object"], "names": {".class": "SymbolTable", "__call__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior.__call__", "name": "__call__", "type": {".class": "CallableType", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "arg_types": ["dataset.DatasetReadFromDiskPrior", {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__call__ of DatasetReadFromDiskPrior", "ret_type": {".class": "NoneType"}, "variables": []}}}, "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "function"], "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior.__init__", "name": "__init__", "type": null}}, "function": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.DatasetReadFromDiskPrior.function", "name": "function", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "DatasetSession": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.DatasetSession", "name": "DatasetSession", "type_vars": []}, "flags": [], "fullname": "dataset.DatasetSession", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.DatasetSession", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "flags": [], "fullname": "dataset.DatasetSession.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "type"], "arg_types": ["dataset.DatasetSession", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "csv_dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.csv_dataset", "name": "csv_dataset", "type": "dataset.CSV"}}, "dataset_type": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.dataset_type", "name": "dataset_type", "type": "builtins.str"}}, "es_dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.es_dataset", "name": "es_dataset", "type": "dataset.ES"}}, "get_csv_dataset": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.DatasetSession.get_csv_dataset", "name": "get_csv_dataset", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.DatasetSession"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_csv_dataset of DatasetSession", "ret_type": "dataset.Dataset", "variables": []}}}, "get_csv_size": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.DatasetSession.get_csv_size", "name": "get_csv_size", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.DatasetSession"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "get_csv_size of DatasetSession", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.tuple"}, "variables": []}}}, "parquet_dataset": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.DatasetSession.parquet_dataset", "name": "parquet_dataset", "type": "dataset.Parquet"}}, "read_csv": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.DatasetSession.read_csv", "name": "read_csv", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_csv of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_es_index": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "host", "query"], "flags": [], "fullname": "dataset.DatasetSession.read_es_index", "name": "read_es_index", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "host", "query"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_es_index of DatasetSession", "ret_type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}, "variables": []}}}, "read_parquet": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.DatasetSession.read_parquet", "name": "read_parquet", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "data_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.DatasetSession", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_parquet of DatasetSession", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Dict": {".class": "SymbolTableNode", "cross_ref": "typing.Dict", "kind": "Gdef"}, "ES": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.ES", "name": "ES", "type_vars": []}, "flags": [], "fullname": "dataset.ES", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.ES", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "host"], "flags": [], "fullname": "dataset.ES.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0], "arg_names": ["self", "host"], "arg_types": ["dataset.ES", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of ES", "ret_type": {".class": "NoneType"}, "variables": []}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.ES.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "header_set": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.ES.header_set", "name": "header_set", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "host": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.ES.host", "name": "host", "type": "builtins.str"}}, "payload": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": ["explicit_self_type", "is_ready"], "fullname": "dataset.ES.payload", "name": "payload", "type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}, {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.dict"}}}, "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.ES.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.ES"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of ES", "ret_type": {".class": "NoneType"}, "variables": []}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Enum": {".class": "SymbolTableNode", "cross_ref": "enum.Enum", "kind": "Gdef"}, "List": {".class": "SymbolTableNode", "cross_ref": "typing.List", "kind": "Gdef"}, "LogSourceType": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["enum.Enum"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.LogSourceType", "name": "LogSourceType", "type_vars": []}, "flags": ["is_enum"], "fullname": "dataset.LogSourceType", "metaclass_type": "enum.EnumMeta", "metadata": {}, "module_name": "dataset", "mro": ["dataset.LogSourceType", "enum.Enum", "builtins.object"], "names": {".class": "SymbolTable", "DISK": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.DISK", "name": "DISK", "type": "builtins.str"}}, "ES": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.ES", "name": "ES", "type": "builtins.str"}}, "HDFS": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": "dataset.LogSourceType.HDFS", "name": "HDFS", "type": "builtins.str"}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Parquet": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["dataset.Dataset"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Parquet", "name": "Parquet", "type_vars": []}, "flags": [], "fullname": "dataset.Parquet", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Parquet", "dataset.Dataset", "dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "flags": [], "fullname": "dataset.Parquet.__init__", "name": "__init__", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0, 0, 0], "arg_names": ["self", "parent_folder", "folder", "location_type", "delimiter"], "arg_types": ["dataset.Parquet", "builtins.str", "builtins.str", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__init__ of Parquet", "ret_type": {".class": "NoneType"}, "variables": []}}}, "dataframe": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.Parquet.dataframe", "name": "dataframe", "type": "dataset.CoreDataFrame"}}, "read": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parquet.read", "name": "read", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.Parquet"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read of Parquet", "ret_type": {".class": "NoneType"}, "variables": []}}}, "read_from_disk": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.Parquet.read_from_disk", "name": "read_from_disk", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.Parquet"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_disk of Parquet", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_disk", "type": "dataset.DatasetReadFromDiskPrior"}}}, "read_from_hdfs": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": ["is_decorated"], "fullname": "dataset.Parquet.read_from_hdfs", "name": "read_from_hdfs", "type": {".class": "CallableType", "arg_kinds": [0], "arg_names": ["self"], "arg_types": ["dataset.Parquet"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "read_from_hdfs of Parquet", "ret_type": {".class": "NoneType"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "read_from_hdfs", "type": "dataset.DatasetReadFromDiskPrior"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Parser": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.Parser", "name": "Parser", "type_vars": []}, "flags": [], "fullname": "dataset.Parser", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.Parser", "builtins.object"], "names": {".class": "SymbolTable", "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0], "arg_names": ["self"], "flags": [], "fullname": "dataset.Parser.__init__", "name": "__init__", "type": null}}, "split_record": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "Decorator", "func": {".class": "FuncDef", "arg_kinds": [0, 0, 0], "arg_names": ["self", "record", "sep"], "flags": ["is_decorated"], "fullname": "dataset.Parser.split_record", "name": "split_record", "type": {".class": "CallableType", "arg_kinds": [0, 0, 0], "arg_names": ["self", "record", "sep"], "arg_types": ["dataset.Parser", "builtins.str", "builtins.str"], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "split_record of Parser", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}, "is_overload": false, "var": {".class": "Var", "flags": ["is_initialized_in_class", "is_ready"], "fullname": null, "name": "split_record", "type": "dataset.PriorSplitRecord"}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "PriorSplitRecord": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "TypeInfo", "_promote": null, "abstract_attributes": [], "bases": ["builtins.object"], "declared_metaclass": null, "defn": {".class": "ClassDef", "fullname": "dataset.PriorSplitRecord", "name": "PriorSplitRecord", "type_vars": []}, "flags": [], "fullname": "dataset.PriorSplitRecord", "metaclass_type": null, "metadata": {}, "module_name": "dataset", "mro": ["dataset.PriorSplitRecord", "builtins.object"], "names": {".class": "SymbolTable", "__call__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "flags": [], "fullname": "dataset.PriorSplitRecord.__call__", "name": "__call__", "type": {".class": "CallableType", "arg_kinds": [0, 2], "arg_names": ["self", "args"], "arg_types": ["dataset.PriorSplitRecord", {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}], "bound_args": [], "def_extras": {"first_arg": "self"}, "fallback": "builtins.function", "implicit": false, "is_ellipsis_args": false, "name": "__call__ of PriorSplitRecord", "ret_type": {".class": "Instance", "args": [{".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 4}], "type_ref": "builtins.list"}, "variables": []}}}, "__init__": {".class": "SymbolTableNode", "kind": "Mdef", "node": {".class": "FuncDef", "arg_kinds": [0, 0], "arg_names": ["self", "function"], "flags": [], "fullname": "dataset.PriorSplitRecord.__init__", "name": "__init__", "type": null}}, "function": {".class": "SymbolTableNode", "implicit": true, "kind": "Mdef", "node": {".class": "Var", "flags": [], "fullname": "dataset.PriorSplitRecord.function", "name": "function", "type": {".class": "AnyType", "missing_import_name": null, "source_any": null, "type_of_any": 1}}}}, "tuple_type": null, "type_vars": [], "typeddict_type": null}}, "Sequence": {".class": "SymbolTableNode", "cross_ref": "typing.Sequence", "kind": "Gdef"}, "Tuple": {".class": "SymbolTableNode", "cross_ref": "typing.Tuple", "kind": "Gdef"}, "__doc__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__doc__", "name": "__doc__", "type": "builtins.str"}}, "__file__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__file__", "name": "__file__", "type": "builtins.str"}}, "__name__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__name__", "name": "__name__", "type": "builtins.str"}}, "__package__": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_ready"], "fullname": "dataset.__package__", "name": "__package__", "type": "builtins.str"}}, "json": {".class": "SymbolTableNode", "cross_ref": "json", "kind": "Gdef"}, "logging": {".class": "SymbolTableNode", "cross_ref": "logging", "kind": "Gdef"}, "np": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset.np", "name": "np", "type": {".class": "AnyType", "missing_import_name": "dataset.np", "source_any": null, "type_of_any": 3}}}, "pd": {".class": "SymbolTableNode", "kind": "Gdef", "node": {".class": "Var", "flags": ["is_suppressed_import", "is_ready"], "fullname": "dataset.pd", "name": "pd", "type": {".class": "AnyType", "missing_import_name": "dataset.pd", "source_any": null, "type_of_any": 3}}}, "requests": {".class": "SymbolTableNode", "cross_ref": "requests", "kind": "Gdef"}}, "path": "dataset.py"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/dataset.meta.json b/core/.mypy_cache/3.7/dataset.meta.json index 6ca3626..953363d 100644 --- a/core/.mypy_cache/3.7/dataset.meta.json +++ b/core/.mypy_cache/3.7/dataset.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219960, "dep_lines": [21, 24, 25, 26, 27, 1, 1, 1, 1, 1, 22, 23], "dep_prios": [10, 5, 5, 10, 10, 5, 30, 30, 30, 30, 10, 10], "dependencies": ["logging", "typing", "enum", "requests", "json", "builtins", "abc", "json.encoder", "requests.models", "types"], "hash": "2d020fc2d869f04fcd729004d0f3ace0", "id": "dataset", "ignore_all": false, "interface_hash": "40315c56721032abccd4a364d5126b58", "mtime": 1590219951, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "dataset.py", "plugin_data": null, "size": 9477, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file +{"id": "dataset", "path": "dataset.py", "mtime": 1590222031, "size": 10481, "hash": "1db8367569a295df841db575031d5d9d", "data_mtime": 1590221815, "dependencies": ["logging", "typing", "enum", "requests", "json", "builtins", "abc", "json.encoder", "requests.models", "types"], "suppressed": ["pandas", "numpy"], "options": {"mypyc": false, "disallow_untyped_calls": false, "allow_untyped_globals": false, "disallow_untyped_defs": false, "disallow_incomplete_defs": false, "no_implicit_optional": false, "check_untyped_defs": false, "strict_optional": true, "local_partial_types": false, "warn_unreachable": false, "allow_redefinition": false, "disallow_subclassing_any": false, "disallow_any_explicit": false, "disallow_untyped_decorators": false, "warn_return_any": false, "plugins": [], "follow_imports": "normal", "ignore_missing_imports": true, "disallow_any_decorated": false, "warn_no_return": true, "platform": "darwin", "disallow_any_expr": false, "bazel": false, "ignore_errors": false, "strict_equality": false, "disallow_any_generics": false, "strict_optional_whitelist": null, "follow_imports_for_stubs": false, "always_true": [], "show_none_errors": true, "always_false": [], "implicit_reexport": true, "warn_unused_ignores": false, "disallow_any_unimported": false}, "dep_prios": [10, 5, 5, 10, 10, 5, 30, 30, 30, 30, 10, 10], "dep_lines": [21, 24, 25, 26, 27, 1, 1, 1, 1, 1, 22, 23], "interface_hash": "029d6cd5fccde7da1a1e16a4cfd31966", "version_id": "0.761", "ignore_all": false, "plugin_data": null} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/dataset_test.meta.json b/core/.mypy_cache/3.7/dataset_test.meta.json index 8efbb82..9becd9c 100644 --- a/core/.mypy_cache/3.7/dataset_test.meta.json +++ b/core/.mypy_cache/3.7/dataset_test.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219001, "dep_lines": [17, 19, 20, 21, 24, 1, 1, 1, 1, 1, 18], "dep_prios": [10, 5, 10, 5, 5, 5, 20, 20, 30, 30, 10], "dependencies": ["unittest", "dataset", "logging", "typing", "unittest.mock", "builtins", "json", "requests", "abc", "unittest.case"], "hash": "f1dc9c9ea7251fc238b93a2dadc4ced8", "id": "dataset_test", "ignore_all": false, "interface_hash": "11ba84d85546b3173cf1281a07516e21", "mtime": 1587530922, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./dataset_test.py", "plugin_data": null, "size": 2317, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221816, "dep_lines": [17, 19, 20, 21, 24, 1, 1, 1, 1, 1, 18], "dep_prios": [10, 5, 10, 5, 5, 5, 20, 20, 30, 30, 10], "dependencies": ["unittest", "dataset", "logging", "typing", "unittest.mock", "builtins", "json", "requests", "abc", "unittest.case"], "hash": "f1dc9c9ea7251fc238b93a2dadc4ced8", "id": "dataset_test", "ignore_all": false, "interface_hash": "11ba84d85546b3173cf1281a07516e21", "mtime": 1587530922, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./dataset_test.py", "plugin_data": null, "size": 2317, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/model.meta.json b/core/.mypy_cache/3.7/model.meta.json index 435ec38..0ea35db 100644 --- a/core/.mypy_cache/3.7/model.meta.json +++ b/core/.mypy_cache/3.7/model.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219554, "dep_lines": [16, 17, 18, 19, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 344], "dep_prios": [10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 30, 30, 30, 30, 30, 30, 30, 30, 20, 20], "dependencies": ["logging", "threading", "time", "urllib.request", "urllib", "sys", "os", "os.path", "shutil", "io", "json", "model_modules", "database", "dataset", "user", "encode", "hash", "utility", "typing", "api", "enum", "builtins", "_importlib_modulespec", "abc", "json.decoder", "model_modules.es", "model_modules.es.es", "model_modules.local_pandas", "model_modules.local_pandas.local_pandas", "types", "requests"], "hash": "e1d0ab1dec0c3d7e0f86643f4e7e336a", "id": "model", "ignore_all": false, "interface_hash": "53ac2500ec9e6f3005850c298567c805", "mtime": 1590016856, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "model.py", "plugin_data": null, "size": 22532, "suppressed": ["MODEL"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221817, "dep_lines": [16, 17, 18, 19, 19, 20, 21, 22, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 344], "dep_prios": [10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 20, 30, 30, 30, 30, 30, 30, 30, 30, 20], "dependencies": ["logging", "threading", "time", "urllib.request", "urllib", "sys", "os", "os.path", "shutil", "io", "json", "model_modules", "database", "dataset", "user", "encode", "hash", "utility", "typing", "api", "enum", "builtins", "requests", "_importlib_modulespec", "abc", "json.decoder", "model_modules.es", "model_modules.es.es", "model_modules.local_pandas", "model_modules.local_pandas.local_pandas", "types"], "hash": "e1d0ab1dec0c3d7e0f86643f4e7e336a", "id": "model", "ignore_all": false, "interface_hash": "53ac2500ec9e6f3005850c298567c805", "mtime": 1590016856, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "model.py", "plugin_data": null, "size": 22532, "suppressed": ["MODEL"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/process.meta.json b/core/.mypy_cache/3.7/process.meta.json index 27b55a8..618c1a4 100644 --- a/core/.mypy_cache/3.7/process.meta.json +++ b/core/.mypy_cache/3.7/process.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219478, "dep_lines": [23, 24, 25, 26, 27, 28, 30, 1, 1, 1, 1, 1, 29], "dep_prios": [10, 5, 5, 5, 5, 5, 5, 5, 30, 20, 20, 30, 5], "dependencies": ["logging", "dataset", "typing", "enum", "entity", "user", "database", "builtins", "abc", "json", "requests", "types"], "hash": "959ef7f8684d29321467c5201f942746", "id": "process", "ignore_all": false, "interface_hash": "6af6e3620b973328fce5ccd2ab3e9525", "mtime": 1590219338, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "process.py", "plugin_data": null, "size": 5009, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221816, "dep_lines": [23, 24, 25, 26, 27, 28, 30, 1, 1, 1, 29], "dep_prios": [10, 5, 5, 5, 5, 5, 5, 5, 30, 30, 5], "dependencies": ["logging", "dataset", "typing", "enum", "entity", "user", "database", "builtins", "abc", "types"], "hash": "bd8bc87c7106457a71dc2269fc25f14e", "id": "process", "ignore_all": false, "interface_hash": "6af6e3620b973328fce5ccd2ab3e9525", "mtime": 1590222313, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "process.py", "plugin_data": null, "size": 5076, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/process_test.meta.json b/core/.mypy_cache/3.7/process_test.meta.json index 94ece02..55a2b2e 100644 --- a/core/.mypy_cache/3.7/process_test.meta.json +++ b/core/.mypy_cache/3.7/process_test.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219478, "dep_lines": [16, 18, 19, 20, 21, 1, 1, 1, 1, 17], "dep_prios": [10, 5, 10, 5, 5, 5, 30, 30, 30, 10], "dependencies": ["unittest", "process", "logging", "typing", "unittest.mock", "builtins", "abc", "enum", "unittest.case"], "hash": "203e47c05676d537381f746a6ba7aef7", "id": "process_test", "ignore_all": false, "interface_hash": "781ef4b25860a5ce73709332c8d19b96", "mtime": 1583115850, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "process_test.py", "plugin_data": null, "size": 1261, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221816, "dep_lines": [16, 18, 19, 20, 21, 1, 1, 1, 1, 1, 1, 17], "dep_prios": [10, 5, 10, 5, 5, 5, 20, 20, 30, 30, 30, 10], "dependencies": ["unittest", "process", "logging", "typing", "unittest.mock", "builtins", "json", "requests", "abc", "enum", "unittest.case"], "hash": "203e47c05676d537381f746a6ba7aef7", "id": "process_test", "ignore_all": false, "interface_hash": "781ef4b25860a5ce73709332c8d19b96", "mtime": 1583115850, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "process_test.py", "plugin_data": null, "size": 1261, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/test.meta.json b/core/.mypy_cache/3.7/test.meta.json index 2605b67..bf1482c 100644 --- a/core/.mypy_cache/3.7/test.meta.json +++ b/core/.mypy_cache/3.7/test.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219478, "dep_lines": [17, 19, 20, 1, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 30, 30, 30, 30, 30, 30], "dependencies": ["unittest", "dataset_test", "process_test", "builtins", "abc", "typing", "unittest.case", "unittest.loader", "unittest.result", "unittest.runner"], "hash": "66a9068208e81d9fc1b23a17d372d676", "id": "test", "ignore_all": false, "interface_hash": "839927c3533512c592df68e3aec403d0", "mtime": 1586384230, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./test.py", "plugin_data": null, "size": 1563, "suppressed": [], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221816, "dep_lines": [17, 19, 20, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 5, 20, 20, 20, 30, 30, 30, 30, 30, 30], "dependencies": ["unittest", "dataset_test", "process_test", "builtins", "json", "logging", "requests", "abc", "typing", "unittest.case", "unittest.loader", "unittest.result", "unittest.runner"], "hash": "66a9068208e81d9fc1b23a17d372d676", "id": "test", "ignore_all": false, "interface_hash": "839927c3533512c592df68e3aec403d0", "mtime": 1586384230, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./test.py", "plugin_data": null, "size": 1563, "suppressed": [], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/user.meta.json b/core/.mypy_cache/3.7/user.meta.json index 7f8c8f0..8aeed2e 100644 --- a/core/.mypy_cache/3.7/user.meta.json +++ b/core/.mypy_cache/3.7/user.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219478, "dep_lines": [16, 17, 18, 19, 1, 1, 1, 1, 1, 20, 22], "dep_prios": [10, 5, 5, 5, 5, 30, 30, 20, 20, 5, 10], "dependencies": ["logging", "database", "dataset", "typing", "builtins", "abc", "types", "json", "requests"], "hash": "bbd60a6553f53ae20bfb75fa04252077", "id": "user", "ignore_all": false, "interface_hash": "65e21e9d92a18117b4c094419576c34a", "mtime": 1590219469, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user.py", "plugin_data": null, "size": 6136, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221816, "dep_lines": [16, 17, 18, 19, 1, 1, 1, 1, 1, 20, 22], "dep_prios": [10, 5, 5, 5, 5, 20, 20, 30, 30, 5, 10], "dependencies": ["logging", "database", "dataset", "typing", "builtins", "json", "requests", "abc", "types"], "hash": "bbd60a6553f53ae20bfb75fa04252077", "id": "user", "ignore_all": false, "interface_hash": "65e21e9d92a18117b4c094419576c34a", "mtime": 1590219469, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user.py", "plugin_data": null, "size": 6136, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/user_test.meta.json b/core/.mypy_cache/3.7/user_test.meta.json index 6b49c6d..54afbf2 100644 --- a/core/.mypy_cache/3.7/user_test.meta.json +++ b/core/.mypy_cache/3.7/user_test.meta.json @@ -1 +1 @@ -{"data_mtime": 1590219001, "dep_lines": [18, 19, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 20, 20, 20, 30, 30], "dependencies": ["unittest", "dataset", "builtins", "json", "requests", "logging", "abc", "typing"], "hash": "6b9281958b981e2240744073252ed2d4", "id": "user_test", "ignore_all": false, "interface_hash": "ee807b9669e34d8994281aa6aae47d6b", "mtime": 1585289403, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user_test.py", "plugin_data": null, "size": 1055, "suppressed": [], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221816, "dep_lines": [18, 19, 1, 1, 1, 1, 1, 1], "dep_prios": [10, 5, 5, 20, 20, 20, 30, 30], "dependencies": ["unittest", "dataset", "builtins", "json", "logging", "requests", "abc", "typing"], "hash": "6b9281958b981e2240744073252ed2d4", "id": "user_test", "ignore_all": false, "interface_hash": "ee807b9669e34d8994281aa6aae47d6b", "mtime": 1585289403, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "user_test.py", "plugin_data": null, "size": 1055, "suppressed": [], "version_id": "0.761"} \ No newline at end of file diff --git a/core/__pycache__/dataset.cpython-37.pyc b/core/__pycache__/dataset.cpython-37.pyc index 53a7e7192e1caf4a021cd2818679b398cf2f7cb0..7dfcc6f62fd5e8bd93b71310a63e6f7ba8f7c6f6 100644 GIT binary patch delta 1745 zcma)6&u<%55Z+m@V|&-$IB|#*|A^O$NU}+Bnh?^GrY)2<4G7XEsakMJjO({aO&i<1 zUDL*D2`K#s%DW&`q#(fsi33F92!~#fIQ0ZtQ~`IS(gTMgA~Ca$X(CaHUA=E-XXed& z@0)q^^~s%C{X`_9O8B_He82o?=qvr42Knuh_7^~2EJtp|hR{~RVJiqh2nPAk_Mef% z00%^_eFuicfoMV-K^xZz#>9LylN}{7LSQ0X!(j&zR5=V`xii2`aXb12jEL!u%ZGC0 z=FJ@@$qRJ|CDYF}Qand6x!(kQbo=LyA!sh#PsXQ(9!tW27><3}=7k&+_hWr9y8U zkcDn3n~)Fut5KQeX@X2yL~7i?*&=_ZZaH|I|6si2mjbvlKK>7T((xyxM*J3ti+k~L zk?kyRv@am1<;tqD8@Q2fDOPxO&0uBwim_7VPcUC*EA~FKezjUEI^}Am;H=jyqmeSo zwo$1%hF!1Ks@$=dQLeOtnJUjc&b3!k%_6}A@aG9U_6JDvQZOw(PD*pv+k zRM6>_b-5AVJw=Wxr37TghrTk7mvGor!;VyzHsOX;zyu+!FlWlGs=)<1yk#GdGuuJX2Bt+;+xU#r=C9yOdw-@CVY z&31}T-7b`>%yNCac#SWLk!0fKgXA$y(1~FByawXJbr-D1_p5oah{Z6b&n8dGvsySmneHr=wwrhiY8xWXFAGH1!W(CU`Lb delta 1183 zcmaJ>NoW&c6wb>slckxaj)`rOHcg_nV{2?(QkNFDB2`pctwr3%F%vgzQ~y6v5kUpP ztMU*$c&Ok-K}37>Bzo}Z!GnwliU)6s2M;bq-B1Il75091cSnu{t{gcP{2at40L06EE!o! zI-xPFz>!!c+sk5gk|Iqit_GM&ZGzd;Ygcx)N z4(NC%Z6_$omTi{g8NrbqwNyD(8=sJ31Mh-%S(e0!BW01Htyqqi5*g^nr}3%QZFFGx z#Soi?2Cb^KMOfo=>;`Zuv1#pkcJwi9WZ<5Peue>tRSXS(z@Xw-cH39P^nw%=@olmN zdhkLhpR)b8z*gz}PmUQJ z?8Dz9IG_0KS8%I8Dk|gVar>w=6pV%9N4R<0~!cQXj&QhWVi3v(^q+&lT&Pr2NPRb=GTP(TRz+J4E`&ZN~_y zQc!VSrWl#UOuUe(6^i8LM2JeJO?;440|)y<=EEe|C;s^u(0qO*{S>jhM%G{}dNuq++^6@s7j21^VO}kPuO?Rk{ sGHFfNmJ~zyG+$K4*l#cX%r__9H{jmG9TQA3!DR>&dlzo?C1TCL0Mcsz;{X5v diff --git a/core/__pycache__/dataset_test.cpython-37.pyc b/core/__pycache__/dataset_test.cpython-37.pyc index 368ebe29f2839cca5cd714c5d6f92beeb7d21246..3ecc646e38e5e82124c95c31c34da4a6d8c3f199 100644 GIT binary patch delta 121 zcmZ1>xBkG!$exl| Nl31KtGFgeM4FGAJBj*4B delta 136 zcmdlXx!=@$FsZ1(py-07($@hOQViN&cUQM@otT2W$d z>Ma(Kc##}XTNF!jeo^WzRc<-OpL{okMpcxG+A80%Lo8J C)C}YR delta 47 zcmew$^FfB!iI None: @description to handle parquet files ''' class Parquet(Dataset): - def __init__(self): + def __init__(self, parent_folder: str, folder: str, location_type: str, delimiter: str): pass ''' @@ -236,13 +236,17 @@ def read(self) -> None: @name read_from_disk @description read from disk, and set to Parquets dataframe ''' + @DatasetReadFromDiskPrior def read_from_disk(self) -> None: + # temp + self.dataframe = CoreDataFrame( {} ) pass ''' @name read_from_hdfs @description read from HDFS, and set to Parquets dataframe ''' + @DatasetReadFromDiskPrior # TODO: make DatasetReadFromHDFSPrior def read_from_hdfs(self) -> None: pass @@ -263,10 +267,14 @@ def __init__(self, host: str): ''' def read(self) -> None: logging.info("Reading ES index") - x = requests.get(self.host, data = json.dumps( self.payload ), headers = self.header_set) - logging.info("ES: status code: "+str( x.status_code )) - logging.info( x.raw.headers ) - self.dataframe = CoreDataFrame( x.content.decode() ) + try: + x = requests.get(self.host, data = json.dumps( self.payload ), headers = self.header_set) + logging.info("ES: status code: "+str( x.status_code )) + logging.info( x.raw.headers ) + self.dataframe = CoreDataFrame( x.content.decode() ) + except Exception as e: + logging.error("Error inside ES.read(): "+str(e)) + self.dataframe = CoreDataFrame( {} ) @@ -313,14 +321,14 @@ def read_es_index(self, host: str, query: str): ''' - @name get_size + @name get_csv_size @description get size of dataset_session's dataset object ''' def get_csv_size(self) -> Tuple: return self.csv_dataset.get_size() ''' - @name get_dataset + @name get_csv_dataset @description get dataset_session's dataset object ''' def get_csv_dataset(self) -> Dataset: diff --git a/core/dataset_test.py b/core/dataset_test.py index b95d1ce..258031b 100644 --- a/core/dataset_test.py +++ b/core/dataset_test.py @@ -48,17 +48,17 @@ def test_csv_init(self): class DatasetSessionDataFrameShapeTestCase(unittest.TestCase): def setUp(self): self.dataset_session = DatasetSession("csv") - self.dataset_session.dataset = CSV("", "", "", "") + self.dataset_session.csv_dataset = CSV("", "", "", "") df = pd.DataFrame([("a"),("1")]) #get_dataframe = MagicMock(return_value=DataFrame(df)) - self.dataset_session.dataset.dataframe = CoreDataFrame(df) + self.dataset_session.csv_dataset.dataframe = CoreDataFrame(df) def test_read_csv(self): - self.assertTrue(isinstance(self.dataset_session.get_dataset().get_dataframe().data, + self.assertTrue(isinstance(self.dataset_session.get_csv_dataset().get_dataframe().data, pd.core.frame.DataFrame)) def test_get_size(self): - self.assertEqual(self.dataset_session.get_size(), (2,1)) + self.assertEqual(self.dataset_session.get_csv_size(), (2,1)) ''' diff --git a/core/model_modules/local_pandas/local_pandas.py b/core/model_modules/local_pandas/local_pandas.py index fc33f89..23d10dc 100644 --- a/core/model_modules/local_pandas/local_pandas.py +++ b/core/model_modules/local_pandas/local_pandas.py @@ -33,4 +33,4 @@ def __init__(self, dataset_session.read_parquet("../test_datasets/toy_1", "proxy", "disk", sep) #assign data - #self.data: DataFrame = CoreDataFrame(dataset_session.parquet_dataset.dataframe) + self.data: DataFrame = CoreDataFrame(dataset_session.parquet_dataset.dataframe) diff --git a/core/process.py b/core/process.py index 513b27c..930bfc9 100644 --- a/core/process.py +++ b/core/process.py @@ -80,11 +80,13 @@ def execute(self) -> bool: # get the new dataframe log_file_dataset_session: DatasetSession = self.process_data(data_folder, log_obj) - #TODO: with the CoreDataFrame from process data, perform user/entity analysis/extraction + # TODO: condition on log_type, and location_type + # TODO: with the CoreDataFrame from process data, perform user/entity analysis/extraction extracted_users: UserSet = ExtractAllUsersCSV.get(log_file_dataset_session, log_obj) test_user: str = str(list(extracted_users.users.keys())[:2]) logging.info("ProcessEngine, execute, extracted_users, test user: "+test_user) + # store the extracted users, or update the storage # extracted_users.set_of_users #TODO: mark log_obj as processed afterwards diff --git a/core/storage/model_sessions.json b/core/storage/model_sessions.json index a6f69a6..8a91318 100644 --- a/core/storage/model_sessions.json +++ b/core/storage/model_sessions.json @@ -1,6 +1,6 @@ { "session": { - "model_name": "model_1", + "model_name": "model_test", "description": "blank", "mitre_tactic": "", "mitre_technique_name": "", @@ -24,11 +24,11 @@ { "type": "external", "filename": "MODEL.py", - "data_hash": "7abf09221bf1a1991a0044a2b8a649a440176bbfb0f95be4ab4d54d87a605413", - "file_hash": "b017478eb77b119515217bb2535ef1727ddac6a3298e86a9f1eb1dbe3e1d80e4", - "file_payload": "ZnJvbSBtb2RlbF9tb2R1bGVzIGltcG9ydCB0ZXN0X21vZHVsZQoKIyBuZWVkIHRvIGV4cG9zZSBleGVjdXRlCmRlZiBleGVjdXRlKCk6CiAgICBwcmludCgibW9kZWxfdGVzdCB0ZXN0aW5nLi4uIGJlZm9yZSBkaXNrIikKICAgIHJldHVybl9vYmplY3Q6IGRpY3QgPSBkaWN0KCkKICAgIHRlc3RfbW9kdWxlLkV4ZWN1dGUoKQogICAgZm9yIHggaW4gcmFuZ2UoMCwxMDAwMDApOgogICAgICAgIHJldHVybl9vYmplY3RbeF0gPSB7CiAgICAgICAgICAgICJ2YWx1ZSI6ICJ0ZXN0IgogICAgICAgIH0KCiAgICBwcmludCgibW9kZWwgZW5kIHJ1bi4uLi4uLi4uLi4uLi4uLi4uLiIpCiAgICByZXR1cm4gcmV0dXJuX29iamVjdAo=" + "data_hash": "c91569ef18120310e433645d54eaddc4fa72bf5a0613a1e13a3e75d2abda665f", + "file_hash": "585a2c07d4644acb0da61202490cafb99a58570dc9861b14426576f54350fdc6", + "file_payload": "IyBuZWVkIHRvIGV4cG9zZSBleGVjdXRlCmRlZiBleGVjdXRlKCk6CglwcmludCgibW9kZWxfdGVzdCB0ZXN0aW5nLi4uIikKCXJldHVybl9vYmplY3Q6IGRpY3QgPSB7fQoKCWZvciB4IGluIHJhbmdlKDAsMTAwMDAwKToKCQlyZXR1cm5fb2JqZWN0W3hdID0gewoJCQkidmFsdWUiOiAidGVzdCIKCQl9CgoJcHJpbnQoIm1vZGVsIGVuZCBydW4uLiIpCglyZXR1cm4gcmV0dXJuX29iamVjdAo=" } ] }, - "timestamp": "2020-05-23 03:46:17" + "timestamp": "2020-05-23 04:28:24" } \ No newline at end of file From 977ce11bc8c9f83873e2941f4b5e721bc3c969e1 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 13:39:01 -0400 Subject: [PATCH 06/16] dev/brand-v --- README.md | 7 ++++++- core/.mypy_cache/3.7/dataset.meta.json | 2 +- core/.mypy_cache/3.7/dataset_test.meta.json | 2 +- core/storage/.DS_Store | Bin 6148 -> 6148 bytes core/storage/model_sessions.json | 2 +- images/logo.png | Bin 0 -> 131119 bytes 6 files changed, 9 insertions(+), 4 deletions(-) create mode 100644 images/logo.png diff --git a/README.md b/README.md index 2d9f1a3..0d58889 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,11 @@ + + # OpenUBA (Open User Behavior Analytics) A robust, and flexible open source User & Entity Behavior Analytics (UEBA) framework used for Security Analytics. Developed with luv by Data Scientists & Security Analysts from the Cyber Security Industry. +### White Paper +[source](https://github.com/GACWR/ouba-paper) + ## Problem Many UBA platforms typically use a "black box" approach to data science practices, which may work best for security analysts who are not interested in the nuts and bolts of the underlying models being used to generate anomalies, baselines, and cases. These platforms view their models as IP. @@ -59,7 +64,7 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: - Peer-oriented/community intel - Lightweight, SIEM-agnostic architecture - Flexible/open dataset support - - Alerting/Ticketing system + - Alerting - Browser & desktop applications ## Stack diff --git a/core/.mypy_cache/3.7/dataset.meta.json b/core/.mypy_cache/3.7/dataset.meta.json index 953363d..df223d2 100644 --- a/core/.mypy_cache/3.7/dataset.meta.json +++ b/core/.mypy_cache/3.7/dataset.meta.json @@ -1 +1 @@ -{"id": "dataset", "path": "dataset.py", "mtime": 1590222031, "size": 10481, "hash": "1db8367569a295df841db575031d5d9d", "data_mtime": 1590221815, "dependencies": ["logging", "typing", "enum", "requests", "json", "builtins", "abc", "json.encoder", "requests.models", "types"], "suppressed": ["pandas", "numpy"], "options": {"mypyc": false, "disallow_untyped_calls": false, "allow_untyped_globals": false, "disallow_untyped_defs": false, "disallow_incomplete_defs": false, "no_implicit_optional": false, "check_untyped_defs": false, "strict_optional": true, "local_partial_types": false, "warn_unreachable": false, "allow_redefinition": false, "disallow_subclassing_any": false, "disallow_any_explicit": false, "disallow_untyped_decorators": false, "warn_return_any": false, "plugins": [], "follow_imports": "normal", "ignore_missing_imports": true, "disallow_any_decorated": false, "warn_no_return": true, "platform": "darwin", "disallow_any_expr": false, "bazel": false, "ignore_errors": false, "strict_equality": false, "disallow_any_generics": false, "strict_optional_whitelist": null, "follow_imports_for_stubs": false, "always_true": [], "show_none_errors": true, "always_false": [], "implicit_reexport": true, "warn_unused_ignores": false, "disallow_any_unimported": false}, "dep_prios": [10, 5, 5, 10, 10, 5, 30, 30, 30, 30, 10, 10], "dep_lines": [21, 24, 25, 26, 27, 1, 1, 1, 1, 1, 22, 23], "interface_hash": "029d6cd5fccde7da1a1e16a4cfd31966", "version_id": "0.761", "ignore_all": false, "plugin_data": null} \ No newline at end of file +{"data_mtime": 1590221815, "dep_lines": [21, 24, 25, 26, 27, 1, 1, 1, 1, 1, 22, 23], "dep_prios": [10, 5, 5, 10, 10, 5, 30, 30, 30, 30, 10, 10], "dependencies": ["logging", "typing", "enum", "requests", "json", "builtins", "abc", "json.encoder", "requests.models", "types"], "hash": "83ae061ff18a52d03f98514dbba008d2", "id": "dataset", "ignore_all": false, "interface_hash": "029d6cd5fccde7da1a1e16a4cfd31966", "mtime": 1590222810, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "dataset.py", "plugin_data": null, "size": 10489, "suppressed": ["pandas", "numpy"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/.mypy_cache/3.7/dataset_test.meta.json b/core/.mypy_cache/3.7/dataset_test.meta.json index 9becd9c..b45f7c5 100644 --- a/core/.mypy_cache/3.7/dataset_test.meta.json +++ b/core/.mypy_cache/3.7/dataset_test.meta.json @@ -1 +1 @@ -{"data_mtime": 1590221816, "dep_lines": [17, 19, 20, 21, 24, 1, 1, 1, 1, 1, 18], "dep_prios": [10, 5, 10, 5, 5, 5, 20, 20, 30, 30, 10], "dependencies": ["unittest", "dataset", "logging", "typing", "unittest.mock", "builtins", "json", "requests", "abc", "unittest.case"], "hash": "f1dc9c9ea7251fc238b93a2dadc4ced8", "id": "dataset_test", "ignore_all": false, "interface_hash": "11ba84d85546b3173cf1281a07516e21", "mtime": 1587530922, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./dataset_test.py", "plugin_data": null, "size": 2317, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file +{"data_mtime": 1590221816, "dep_lines": [17, 19, 20, 21, 24, 1, 1, 1, 1, 1, 18], "dep_prios": [10, 5, 10, 5, 5, 5, 20, 20, 30, 30, 10], "dependencies": ["unittest", "dataset", "logging", "typing", "unittest.mock", "builtins", "requests", "json", "abc", "unittest.case"], "hash": "cd9588de7933d149fea6c9cc2f7b668d", "id": "dataset_test", "ignore_all": false, "interface_hash": "11ba84d85546b3173cf1281a07516e21", "mtime": 1590222865, "options": {"allow_redefinition": false, "allow_untyped_globals": false, "always_false": [], "always_true": [], "bazel": false, "check_untyped_defs": false, "disallow_any_decorated": false, "disallow_any_explicit": false, "disallow_any_expr": false, "disallow_any_generics": false, "disallow_any_unimported": false, "disallow_incomplete_defs": false, "disallow_subclassing_any": false, "disallow_untyped_calls": false, "disallow_untyped_decorators": false, "disallow_untyped_defs": false, "follow_imports": "normal", "follow_imports_for_stubs": false, "ignore_errors": false, "ignore_missing_imports": true, "implicit_reexport": true, "local_partial_types": false, "mypyc": false, "no_implicit_optional": false, "platform": "darwin", "plugins": [], "show_none_errors": true, "strict_equality": false, "strict_optional": true, "strict_optional_whitelist": null, "warn_no_return": true, "warn_return_any": false, "warn_unreachable": false, "warn_unused_ignores": false}, "path": "./dataset_test.py", "plugin_data": null, "size": 2333, "suppressed": ["pandas"], "version_id": "0.761"} \ No newline at end of file diff --git a/core/storage/.DS_Store b/core/storage/.DS_Store index 7ff7399be9f0cd8d9ab91d5d8107f636e76645c6..af80941d92fa01a4a5a327497cc153600726256d 100644 GIT binary patch delta 20 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 literal 0 HcmV?d00001 From 3d88e54ccf135ef1a2aa3a07fc670c8a5237b308 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 13:39:40 -0400 Subject: [PATCH 07/16] dev/brand-v --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0d58889..6f4040f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# OpenUBA (Open User Behavior Analytics) +# Open User Behavior Analytics A robust, and flexible open source User & Entity Behavior Analytics (UEBA) framework used for Security Analytics. Developed with luv by Data Scientists & Security Analysts from the Cyber Security Industry. ### White Paper From 9f3ed94f349fff5050a6e27257b89172434bab62 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 15:37:17 -0400 Subject: [PATCH 08/16] dev/brand update-v --- README.md | 23 +++++++++--------- images/ouba-model-library.jpg | Bin 0 -> 39960 bytes images/ui.png | Bin 115540 -> 287313 bytes interface/public/img/logo.png | Bin 0 -> 131119 bytes interface/public/img/logo_white.png | Bin 0 -> 49444 bytes .../src/Components/Navigation/Navigation.js | 4 ++- 6 files changed, 15 insertions(+), 12 deletions(-) create mode 100644 images/ouba-model-library.jpg create mode 100644 interface/public/img/logo.png create mode 100644 interface/public/img/logo_white.png diff --git a/README.md b/README.md index 6f4040f..47cb4c6 100644 --- a/README.md +++ b/README.md @@ -5,14 +5,7 @@ A robust, and flexible open source User & Entity Behavior Analytics (UEBA) frame ### White Paper [source](https://github.com/GACWR/ouba-paper) - -## Problem -Many UBA platforms typically use a "black box" approach to data science practices, which may work best for security analysts who are not interested in the nuts and bolts of the underlying models being used to generate anomalies, baselines, and cases. These platforms view their models as IP. - -# solution -OUBA takes an "open-model" approach, and is designed for the small subset of security analysts who have authentic curiosity about what models are doing, and how they work under the hood. We believe in the scientific computing community, and its contributions over the years (libraries, toolkits, etc). In security, rule/model transparency is key, for compliance, response/investigation, and decision making. - -To take it a step further, OUBA also makes use of a community driven marketplace for models, similar to a plugin-store, where plugins are security models. This marketplace is where users of OUBA can install security models for their own use cases. Model developers can also upload their models, enabling other OUBA users to reuse them, whether for free, or compensation -- the choice is up to the model developer to make. +[preprint](https://github.com/GACWR/ouba-paper) *This project is a work in progress and in a pre-alpha state; input and contributions are warmly welcome* @@ -34,6 +27,14 @@ To take it a step further, OUBA also makes use of a community driven marketplace | `Code Size` | [![Code size in bytes](https://img.shields.io/github/languages/code-size/GACWR/OpenUBA.svg)](https://github.com/GACWR/OpenUBA) | | `Chat` | ![Discord](https://img.shields.io/discord/683561405928177737) | +## Problem +Many UBA platforms typically use a "black box" approach to data science practices, which may work best for security analysts who are not interested in the nuts and bolts of the underlying models being used to generate anomalies, baselines, and cases. These platforms view their models as IP. + +# solution +OUBA takes an "open-model" approach, and is designed for the small subset of security analysts who have authentic curiosity about what models are doing, and how they work under the hood. We believe in the scientific computing community, and its contributions over the years (libraries, toolkits, etc). In security, rule/model transparency is key, for compliance, response/investigation, and decision making. + +To take it a step further, OUBA also makes use of a community driven marketplace for models, similar to a plugin-store, where plugins are security models. This marketplace is where users of OUBA can install security models for their own use cases. Model developers can also upload their models, enabling other OUBA users to reuse them, whether for free, or compensation -- the choice is up to the model developer to make. + ## Architecture @@ -99,8 +100,8 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: - Flat File -# User Interface (placeholder, UI being updated now) - +# User Interface (under active development) + The interface is meant to observe system events, and anomalies @@ -115,7 +116,7 @@ The interface is meant to observe system events, and anomalies OpenUBA implements a model library purposed with hosting "ready-to-use" models, both developed by us, and the community. For starters, we host the default model repository, similar to any popular package manager (npm, cargo, etc). However, developers can host their own model repository for use in their own instance of OpenUBA. Model installation currently works as follows: - + ## Installation/Usage Go to [INSTALL.md](https://github.com/GACWR/OpenUBA/blob/master/docs/INSTALL.md) diff --git a/images/ouba-model-library.jpg b/images/ouba-model-library.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5c10dbae21f514020e8554bcfab2d9b9131a7868 GIT binary patch literal 39960 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

mfmEUCnWbYQ2`DuBY4(nDdAS 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

#V)vYJGp7 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 AA^-pY diff --git a/interface/public/img/logo.png b/interface/public/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..20676aaa800716f54743c2804d84d493927c31e9 GIT binary patch literal 131119 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 literal 0 HcmV?d00001 diff --git a/interface/public/img/logo_white.png b/interface/public/img/logo_white.png new file mode 100644 index 0000000000000000000000000000000000000000..3edb29c4d1f7f7c35a977cdfa314d987f3242d28 GIT binary patch literal 49444 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 ( - OpenUBA + + + ); From 228381ba26aaf37f7d2e4197ffb7ea108e179586 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 15:38:25 -0400 Subject: [PATCH 09/16] dev/brand update-v --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 47cb4c6..9e187be 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,6 @@ A robust, and flexible open source User & Entity Behavior Analytics (UEBA) frame ### White Paper [source](https://github.com/GACWR/ouba-paper) -[preprint](https://github.com/GACWR/ouba-paper) *This project is a work in progress and in a pre-alpha state; input and contributions are warmly welcome* From 6e85c78277f177abcaa8c4710a5f18c2c3120672 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 15:39:07 -0400 Subject: [PATCH 10/16] removed dockerfile for ui-v --- DockerfileUI | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 DockerfileUI diff --git a/DockerfileUI b/DockerfileUI deleted file mode 100644 index e69de29..0000000 From 26f8121ec3c21a6a0e1cfdc901a1448634f3c9af Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 15:41:01 -0400 Subject: [PATCH 11/16] readme fixes-v --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9e187be..93ef0e6 100644 --- a/README.md +++ b/README.md @@ -100,7 +100,7 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: # User Interface (under active development) - + The interface is meant to observe system events, and anomalies @@ -114,7 +114,7 @@ The interface is meant to observe system events, and anomalies # Model Library OpenUBA implements a model library purposed with hosting "ready-to-use" models, both developed by us, and the community. For starters, we host the default model repository, similar to any popular package manager (npm, cargo, etc). However, developers can host their own model repository for use in their own instance of OpenUBA. -Model installation currently works as follows: +## Model workflow: ## Installation/Usage From d97d20360854cc87fd58ceff820ab2caa4f8dfdf Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 15:42:47 -0400 Subject: [PATCH 12/16] readme fixes-v --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 93ef0e6..f4f72d0 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ OUBA takes an "open-model" approach, and is designed for the small subset of sec To take it a step further, OUBA also makes use of a community driven marketplace for models, similar to a plugin-store, where plugins are security models. This marketplace is where users of OUBA can install security models for their own use cases. Model developers can also upload their models, enabling other OUBA users to reuse them, whether for free, or compensation -- the choice is up to the model developer to make. ## Architecture - + ## Goals @@ -99,7 +99,7 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: - Flat File -# User Interface (under active development) +# Interface (under active development) The interface is meant to observe system events, and anomalies @@ -114,7 +114,7 @@ The interface is meant to observe system events, and anomalies # Model Library OpenUBA implements a model library purposed with hosting "ready-to-use" models, both developed by us, and the community. For starters, we host the default model repository, similar to any popular package manager (npm, cargo, etc). However, developers can host their own model repository for use in their own instance of OpenUBA. -## Model workflow: +## Model Library Workflow: ## Installation/Usage From cee6d8e300a22889a43b92666ef59370f7444e27 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 15:45:08 -0400 Subject: [PATCH 13/16] readme fixes-v --- docs/INSTALL.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/docs/INSTALL.md b/docs/INSTALL.md index e0dd830..6974842 100644 --- a/docs/INSTALL.md +++ b/docs/INSTALL.md @@ -64,10 +64,7 @@ If you run this command, it will build the static html from React make rb ``` -From this point, running the following command will server the static HTML -``` -make uis # UI server -``` +Now, you can either see the interface from the browser on port 3000 (default react port), or launch the desktop application # Electron app To start the electron app, run From 833039b46ab85d541458bc2a460d5eb1ba5315c7 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 15:47:20 -0400 Subject: [PATCH 14/16] readme fixes-v --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index f4f72d0..c317b9f 100644 --- a/README.md +++ b/README.md @@ -102,8 +102,6 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: # Interface (under active development) -The interface is meant to observe system events, and anomalies - ## Views - Dashboard (index) - Models From dc4b9a360c4021db619860d35b43760dfeece90f Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 15:51:16 -0400 Subject: [PATCH 15/16] readme fixes-v --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c317b9f..3b56595 100644 --- a/README.md +++ b/README.md @@ -103,7 +103,7 @@ To Build a lightweight, SIEM Agnostic, UEBA Framework focused on providing: ## Views -- Dashboard (index) +- Home - Models - Anomalies - Cases From dc08216d51a2a7fb209e6e1c27aef70649268254 Mon Sep 17 00:00:00 2001 From: Jovonni Pharr Date: Mon, 25 May 2020 15:59:21 -0400 Subject: [PATCH 16/16] readme fixes-v --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3b56595..daece73 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ A robust, and flexible open source User & Entity Behavior Analytics (UEBA) frame ## Problem Many UBA platforms typically use a "black box" approach to data science practices, which may work best for security analysts who are not interested in the nuts and bolts of the underlying models being used to generate anomalies, baselines, and cases. These platforms view their models as IP. -# solution +# Solution OUBA takes an "open-model" approach, and is designed for the small subset of security analysts who have authentic curiosity about what models are doing, and how they work under the hood. We believe in the scientific computing community, and its contributions over the years (libraries, toolkits, etc). In security, rule/model transparency is key, for compliance, response/investigation, and decision making. To take it a step further, OUBA also makes use of a community driven marketplace for models, similar to a plugin-store, where plugins are security models. This marketplace is where users of OUBA can install security models for their own use cases. Model developers can also upload their models, enabling other OUBA users to reuse them, whether for free, or compensation -- the choice is up to the model developer to make.

5dwH@D$i8 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®4M#gRa*vSA%0qCQJlm(+#c)a?-&5nUlM)H9&kX7+o~C;aTf)FB*WLuwJ?Ko z1o2ze>LK3L=K69G)jV3+->O_HAQctJRS56{!Dr?2jTj+z-nuZB_e(>63mI0(E;5P# zxNZ&a*sB!si7tfLbJ28|Ui3H)x9WCS8X{l5`?KH_ zRj3789k=I9brOFOg(qXBpyvfso7C}KtQy(kJUo#F3{@9oVccY!xq`WM^M$dTmLo zUS&t^W+T2&J-RLjQ^QpUgKu!vDhW};Y;1=vcZ5~?g94r(vP^txU3x8J>CYUPoRxQ$ zG7Pt0@xmv%<~11@2aU*SFa3|AQRh45@(Z#5UIRyP%ns}gLxy>%!%fJJ7Nd_c^@E$X zjLl=S36kpZ103K`w3t6)ad2o_Ir_?e*Znx>C+6pn;=i&8zKF9a#Lvhkz!o5E>9!<3TGBRMNI$~{;!5Shq&DJT!+c4|*UTzgXn5ZzW+y~3(2 zH+~6u4K|z2ix2$z-I*5; zNfu9o8e)L$vA;}as1Ix>aH22OH25hPd4LJa_2jS3J97cCSXzwKK7w-Yhf;OE{y;Zt zHQXTHsTMRsHL8McKA(7*s(aZLUn0{a;)y&rA%b;NvwKbO!AV3g;U72e!5pvDS>=x) z;8!&XJQmPRLtt9{$DSSUDO+5vEqD&w0fgcNF0OoC;1=_~0)@h_1lpr0!T>Q%4btlBDg_-SVEgrZB)m%WthHYXrf+L#keL2dZYWx> z!~j;QiURxoxn5ygS80`{$7_t$^{-Yphy|smQ%H%0+vikEFxM)nRWMPI1hfEr4O#Nu z#+Hc18dgaEh#Ee_Mt%0{DCGl5^BtBL!~vOdJ}6`p)sA%D4hysC znASDlcJE_IeZTcFVY{Q*9^8(RQ&ED^ma+Y1s8}VW-t?S>F6v!KRj=dTE3R36&XWBb zX+d$XcxS_~XnUr**Q4OV@7h0^wNAFsg3nW-SRMHA%gId;(=)_qm1{7>0;@VoQ;XdY2BGWWn#z zwwI!gxWxxvXxWWC|Hy3v{Uv@($q};QSukpME@34l$a?JFY%6)4V%gyauyhm5EC1W6 zYQUTu!u9>|vQqnKuyM#AwiEGSJK+5zPgV}JojupMH#HDJ2JF@BFhP1fM4y`Zv`z{F zBHFDi43;JaIsGd!r<5DuEQB7V!;jrL#56e|q}}D7xC}~m(nRjzFYi?-nvzfsV{!Th zr~MKmF@LCs@~WyM^Jfj%)a7JNEL_JXM+Kw`ycdDc^Ck*4e%`1jA^^rXnA*mTnf~(Z zK*Y68+))%nCab>UvL{Tc#OT=&m2?A``?dsV%UB$1R0R~w@m8r@pYumLH-7J~&D>Cm zgtGrvQiu`>IZso_sA)`p#3H2aq=#9Ih9BJsl%^>8mSB>V>a|0_^Bhv;PInR+@LkSJ zd`d3WE9P_JpACxTv)uBawn~3M=SPR02ZpC(bw02{X>dOG35lPvIK zqEmVeZYof$MP51RMzXj3T1ub65fOT*3ichX))IvUK)sXSwTAytqdwZG#6*Ob2UUKX zwP(%Mcq4$6k{D?014;^U)U1tPy(YG(xJ`%w6q^VV9>gYQ{JrTren;h_)jRUOYwed- zMe}VyscBc8oNG6;$@h+NJ;U{qPQAp)ZDJAg^GNx-g;64O$?$~;#MCQX#5!)({F`)S zY`ciCCWFQ^D8N(-lbH;>Dw_H4^qdzrTIt>ET&cmfu3x}lL;gW(%dAn4Vzw<6fPb3+ zEE8@>Q%)M|73F;!dh<|AN6z_BOP60L_%?bV!F-?^LeO?zn=xm~sc`y*kKFDD=(Dw^ zPeN-O!lnT&MX#n*j{2D{xr@}3r}H=>d{bjz#1-tj?L-j}M8LuRMPa4>ps*4k?4olv zSjD}TrbUL?Cu`pxDQrFTO?3&+jT@P4{spT}C6e`+3lIJZr$dQQ{U)ID5 z(B`8B7s`WmZui2fTy$tT7nZH1y9lKs*WNNU5}~i@V5%YQlj&e?jBnnff0O1amP^Pv znil~cyiax&!RZ}*dJ6)JYl~?pJR4z+{}3gv25gp>FkL{>8S-% zjit$eVd546M?LUnSrP1l18vDPvjO2EKUZwFu5!DW!7!z(6A}_p>V~xi`R^PT16NS3 z#amo8hKl|PzZYqd8)6c5pLUh9vEY}@rMEB%)HAppdzNNN2Kxf7OeU8jnApp z+AzXyC*MvmK~uEHKg)1#>6(Buds3 z{q`e`dIq9ypnDhezDk99?jOYsOBAb|?XsJ1olu3{8x-AOLATl$<>KWd@GxCfO?!R` zgbHmT>R^Y;P|&+EU58VRmDGoG4Z#WQDGgLHpW~SomMp_wUSq#(vG~QcA3QoR0|<(-8Uy@gyRZ9;|k5qtH37h>I+2sJg(;tFY*Wy7OMXiKUH+!^O5;v?1OQO)u zut>ilT(oC0ynbYq)jQBQ%ngUw=R#yHA+;iUXzv?FmDCMXNC2VUL!mFW!!jGK3&&?5 zt_wwK88RWVx57#nJi+7e2PxVs?J`!eRQ=k%eyQ7T5A`5~@4^<|(5uqvV>lNfSs=LV zI=f`wkIEe|pJ5ws+whGe|5MzO1EWOh)|yRqCTYa{71`?1fj295bNs2m{Bg&pm(PIN=y^{bFpd8t zI6&T653H#uF~P@s$VmN*9z39SfF~S~A}oe@V*JO44`1;rekgdK_6PP3{5O$V1SVM# zE{GQ)eqr^0{a>ny*LQXNH5r$Ol;PCAb;57#{P!1bAJhbvSi}DKu`k2a;*U2wrvlu+ zsncW||C_(5$$PdNsh{>9HUHO?fLvSHlaDjTDYEfVnfT?yPSSY$8r{W03IpC;Na3(To3UCug9{JOy7rjGU`qDrvo{Yb#!NgNT7+y?Wg0y}BF#1YUYX05F4oN{`N-ki#y1^a z%s;K0v#cka>Pa@)%o7rSeA_b!7QFB->EjmlCTzK;JK_bt3~!%MZz2LqA0cNz=N+$) zT?+QE37z->0ccZN5A&bPNN);Wye$30$FYnPEGq}&Sry8+cAan4LWh8uC1=>}^0UQ)nKeoug`UOV9N*W8)QI}Zq ziq`b*OpU{ku2#u2nAcA?PlC0SY?L%|{5wlg3R|hxTA)kfd2Yryu)ygJG4fVqmP|4V zAr5=6Jk%HbDmYTr#OfFQ_0m8AT6+w^6#TC>f0(M8a_U8qzGx)&Y*IPAc?>)S6`jD; zgd)gb=j0bgU^lVLMno$ z1Mcbf+3I&eXihttw0rmQA=j*EM)LYbQp%K=fjoptw9nN+}K_ewsY6SKy|g zN)dAk`mfO`X`R56)Kn4HRj5YJJBs{pJU%t3trJ7!yo>%G_u}};9M5S0EgJg?!DxT) zLl@ARKpcLP{Z_M|9)s87VHxK~^;92b&W`$lsqMqg4#BUh{Ce_0TTzEACD)kX=6u*` zsfJ((keTMeyux8cahZkuh3>N>(F~rd9=CU7jCa;pA}x8{nlDRM&XTGnOANmCAUjUF z5k+&oK{!Ml>_8;{yj@9+_+*v8O^J6OSQ|OfkZk&Z7(A0ak=a@zK{O6%6Q`??M(lW3 zr`n-`Wc!Eis?r_}*0b0%#qs3{QcXLo+KLuVw8iT!%#Kxh_s1mj^#InH6$(K1_4bzIza)Bw+d^$5zE=TlenFc2E;iV*{ z4|6plGN6s?p9byV7rE%6#tQI6ZXB^Onp|hkW!R#qhbG8bevZQ~QaO(bp`*hJw z24YLhVz7*C?apeg9Zd`(&>BIUn^YvUu~X>JpW9GwNm79on82b=U193rlvf?|i`0U2 zb6)kT@{<&olwt(^3rvNyt811;#qSUGd zOCkMPkQmb?j(Vj>Qm6rwbW(OrzlTLYhAOcpMpuU})uG=(@aB$nEB)lakrUDd_?s~x zqd1PZ>&-UZ-^ocm4Qb60`osnsO;dm<%SNKRT8<;Xi3QAK_K?8lx0O9bwbTjlNz{@F ziYZ|0Cod=zsB&2KznB(^WjnWNf5g1?v_}TGRyp`VB?;Gg^v8bxhUyk1jc8Xk)~RQ? zvcBfMT2q&ZVjzQwWIcxCDjTPFLxaaLAjv0P0%*-PD3%p+GC@kVZzsyuHekNdTsGj8 zCpr>w-_mjO-Y!`3OK$sd;1-AlAD<y!Pt%O3_jn*-vqJV%aG@UYszrU)}aZ+>Rt zh7L~%*{sTruHVIR(RDw(<>2&d$&RO;a%Bd(u9=EE zKMY!BgSppHcJs+axaM&W)gXefzd*;+>YmdKb(T1t&yi6**86y(93+M~UIsiDZ}n=V z03Wav=)aVOmZIj@^P@IrsDKFy4M=o-hSGMLd-+g}HokljuXG`H*8s63>L`9Rh}R~( zSsQ~+;#H60qJrxROys^tucvrE?F;cbKD6Q$xN1;!+Ko5jXN*slJKj)4?I&kZdrl2Y z5r%$|r!kpj|DhfmXbnTSKx9>) z(OLfRS3U7Rj36pXkLJ}wWjw#$a}F^hrv{`ZBCso(?2P~61U(dhqc~pu1_Hdr8f%te zV+}#ufR;Q0z0;Z3GSY6Bl!J!4+tJd6p#;fx7ezmKcDRu>)tQRyO^SaU5UM{TRnKFG z+NZ2yLczb)fkD3)K}#=~K5vu#3nD*xh@l!V;%So8-B)TEcBd`rP4hwNe{|VeO#ahl zJAJ!6#}WRHV*Va7T{iebewf)})2{yek^h{S1@j65 zu`Rp5E{eqKmq|Z3j5J`sGGYuj8?VrAvSeuzXDu(Qi_cvz(YRN*xM>G*U>F)Qmm~ zY5RxvN}qwwN(ZcccO4k;fyH18+#Sg%bU%@EJ=G(gE*@-(UT;G`ryNUJRr#T4Wd?aY z&ts%N;1L0W7wVCXvnsToL3W6>!?|J_4*Y~gH4{*Z{!<)#_Wg?k^dhhkVaF!kLUFJ@ z?{$qu|As5^-BKLpYiq%Epgbm6l`*aRC#-oyqRqhCsuBw~mw9JhG)87YfJ?AO^ElCZ zAcca1jtl%4DgEQVc-V1<10jP7VyU@*QX|*{K z)m~T=6dYqjoK&_~30uMay&KbN$h8`7`2gs6G^z)iiUNH~n9#SiWjMM80$? z3i)1SQa~EL>ODA!8{d1$d2(EZM!Vfi*@1tz(9{#!dxTgrlwD|{7|a2Tk0x*(m+@;q zuI+jiYu$3LD=2gE94S2wjk>F<93B3M+7B-wHGs&}%L9^8M8Ob4TQG?^&-H&qs_CDN zoR>n4e>HM`d2Hl#Tes15Q&fgn0Y`jg!h0A~1+8X!<=b3ArOgerBxf*65R9wEXFV5v z`Z%}QcpgTL^ZL9}5PQHZQy*S@HbR;{BIkq)xueKm;{q(AZM<=P<489(R$K@zU*&1h z@G490;9WvG-XH4KZr9HiO^9cxdMqY1C(37dgcp)z1By&;Id*seS*Dw04RTH1Obzt! zN{Rtv7&?_>)Vr!HK<2b~1*Avk!iyoReW&|T4x)eHG2lxriU%GODkTMGPC51_4$MBA zOL?U2|D%{S?SXDsD3W)l-$BQWP;u(a$_p#E6kq7Qxu@6p?X0Tq@A|i2z=s~`LDnJ| zrCA?!THeg@OhV?c9F`91@^g+v&m>lHp6KM+q{{ltTKxu|&jKUOs_o6iz_DLSK2?F* z)l-gyP69+4%#|&Hzm&2ZT-b&{(ib9$)ZttuvzWv46XYwxAcLI+N{KOHzqTMyPD8c- zmbHBNJ-H4cPZ&1zYE40nk^CmnL<$vAViJ8Z))Jh*3gON83`Q6GdSq`Nq$9)yBxd*w z82)l{bsF%`Qv$;Y%ce=3$E$HzZivnaHt7hV5g9|;-Hfp%%_5fS{^9w5z#O0ytME|M z%I9L|v(W|&CLfh63{L0Js$ObG4p^}#ebZmhR7{k?eUP)db;IdI-k#Rm*r{+Cm2Br7 z*N+hOJw%udCNJ*$xS7tVpVhCl=3f3l{z*tpKkKeR^1$rRb_Fg14~HKS@S+B|-^_x= zxsElDJ}@)oK6;fN43xRP>^ExD)UNN8N^Y_BwW!YDjyI?_a7zAdEWf<(HdrDMG>AFt?LU-(%XhqT3HC0%!O)ZQXd6{ zckT26#VIk%@xQV3?pgRRr3=LT_Vha8k1Z8E&RUi&_e> zVf`_@sqq2=V3o&aRZINclX*^#Hk$|~6bNeORQ_A{iYTjxR$cG0%P&EDMbSKbKLL1s z=Km9kC%a=vM!A9tTw?Sr)IiMW@*ilQ0vcV;9GY6n(VOuT`NcbhTk~b9mk#)}(hhVFhd(S9F+OOG4yVUMDtee>pQ56jg~v`AoAe$9T@w2&a*`STW(o; z-C@UCw$b;yxo1DCM;>+$uLsQJEmc;FWbd!y6^bEQuli&C;SO}__|3^-66$cmAPQj9 z-1ib9$>-foalV>7$2h|}dWO5Sjc82xUkrzl@lt{-6Tu>J`oQcvw8r=XFT{**Owvy5 z#XEGZsd-GWt>5c}I`GxM8ABtK+v1FIQE|R)3fWW+gk~qPlj9|$0LxngNZ7w2AvlJo zq;5*DR9HIMWV|%Aruo0s!N@>0%sdDisV~zRrv#R}3Kk8{~OW}&C}z>5#}HW`heX*a(z%?D-WLrUeV?#j}H zyz|hCrF_&(aUdbgLQSUejrFS*@6g+9+*~tNGHdni4QL#T~LeIADLb?;*h;XP9f0Ogl<1RZaYXLe0g}s*b&}q2W||9{GuFdiWCyq z-&#Y;NB{e%B~lRFO!F$>Sxel4h-jq|^KooOmlxmp(PC{JOIF<~n^&A+*j2$?YkqiA zCu;Y=`A8-xmcgK{8#By}D1T5*LY$_o%q}`xD7m?1r@zBD6ENt$Cb(>6K&czoZsqA& z&&}(3eg*2Ta#UlFHkM!gr)z&8(=D05jEI*GwpQvmZ2XLHy-;8J`=%T}g!&MC6B=V&VaE)-J)Xd^uQ51%Lhm!FDN9dT zKhsbSkqZ#(x5AIDh*vpL?z@pF`4Oq8gm*$Fhs+ozh)AsmcK=X%mjrvpP#5{w0EHm* zX9JXALJWg-+P6Sf8(Q=&I_b*!mcI> z8pnE)LhS~ZuL=10HmOv8wn2H?9!1V4%U{sv44oAlG1VXU2b5KI< zc`!SOgzEo_$Qy2;cP5$V@1}@;f(BrM$Dn6ctK5=zt3pc4BMtNmi{6FKsq)UKKOq#= zVKltWF6ZVVD(>fqz)gx~YEagU6YuF4-tu9j)7}_KW3M#^L~_5G*q7JC;LXn;B_FqhQRZopC9vPgFL_C7d8 zK=bE8OGFyzg#qfwVE3uyNO%zeJ!Z{E>(Z^;C)tt`66pc7WJ>`fT( z#HEC9mkh5&dqUIZqU-Q?HB6G+NskuP{C5YxE@L@+6p9x{F-x{vG&*M?OvcvMw5Pv9 zY>?V%I}0|O=fEnyn}i}?O7cLV%U`N2^5|Y3p;VgWwwu$qE~jmA_`BHrprvnt-6HfU zcxr+j-S7UkH+UgnX@QHS<1ja{i60<&jBp`j&gae#@7hlcJN7BQ8nmps;Y76#+lYyd zXqp|I8Pb1HuvJ~0<6pgC6u@4vUTI-vEJX;tbj1$dmUdeT#!I&ju4Q^bg|+V-2mWTz z&dmJYe%aP^yHo(8Z6&dpQ>#7*@IS;cfqI}gmQ@Mw8#QAS<7so}OOHtkQZzCZT*pIn z3E9h1JviZ1B50@Kg3(fnkn3)o6d854%2i3ibkd+QZT}X?j{HiBnb`~y&MeeAMtv|i za9s91Zs{5)2qz-brgh(gDTXmHA(b>AA-}Z7_gPwe$+;F4ur<@bkkDdwfc8r#jDIM! zZ5oeQKjfK?uFfvf>f}^%4QkuJbO65>Fz1af5sV^#ZUFte*4Q4X=>%BQnqQm*IpgXlWS_HNjbE3-H8-zzdPe z&yv`Z;^J**yZKVIPqoG6fY6(3GbC=L=Q+3^5q)Ex+9o!lfj?Lwhg3WR%4vrpFV$Qh zC2Xf5a_U#VZI`<(-;`aCZMicpR89}U4x8&a!vn=NdE~W>z7=PERyPyN9jZ3x;-!HiE zxU{JmfEOJTuAc^*+&@{BN(7GTx-(`Of`^5H>^8>}vgOYK)#WKp@!+(IqAhlu^ zjl^bVADZXkSy(o`x)&HPRG#>;vpP_;+Yhq^9)4VFvp&ETZNTt&(^^f?(+Y*#Z~Bk< z9OLu3zT%u4gSf04{92!rm7T?n|R zw=sGlfz|PRgo~6sbon-@qmf)@$orA(weB<3Gx%l~PWChJ{E6G$Ytkxr9i#%k)PkB! za~GAtxVh-Gu;H754mQmxm~rUoHyHI)M>A9r?gDqK{(T-F)$5yNF@YKLvRRJ-zcI_b zjB2L%62|8rW<1iTw+v@$r=o8YSJ@`Hi8Xr7ug|I@>)o1Z_)Lh?iz<5+B+Qr+CyTgz zOdD*f=@>fBoG&C*_RnTQrolQ)`_qocsjHTT_kXnDGTb`dT;4H{r0~uZc_f#=4K6a` zuyA2AgW5MKNZTEWWXe7cv}xl=nNitX#+rsb9gHrxxgF{$;az*L!EA|!CHw4f%R6MqvH~=vWyCYZnRHnPZs=yr z#nI9Vr~Lke#++H6_)3Zn;BpH?{(*&b-+`j&5`FAmfkt!vP-aI?@P0jyl@L*zl`CQm zcoZw-+s>df@qS3b!E3B+97?p61Xd3ngk^M>l@ARVqiSgiBs|oeHB4X2UasGtAZIt@ ze1XzLcW@$GtHBnz*VC-S5;?Et$he*IU$nPqjL4p$y^ev8>|Jw_soQnOt3BeFnjJQ+ zzw`(cFlw4xv0zwiq7fm@Xr-+%Oz?BSSjkcK9Ja7XPg}E5yBX7UER$|ZNaATvP714n zdjF8<8(pva!yi#B4ub`<9#&n(DAx^^d-R)o)X*q~HBd>aMyb6kK*EfJ^$`@Mz1t3g zp0#~39^bDYfQ{_WD0`CWhFx5$==6e)03<6RM*Gvu3u;GmmT>|!k1Y()Pbu-PcikH=jzJjgeeQarbg1`LIIv}x5*EM^2gY^%a;y^(Zl$6L zFGEF}4R|Zwit59(knC}3Pq<^1-*>7lSP!J#OsVec^$F<}@=)?^yoX^RCu*3T!q=H_ zCr3nkS!mHVc9h{bSZ_F8Ykh{K@O6-9*Ko0fu`vD{zlnIHD=H(GSfy!Ia4}-Pb9c9X`0PIA^w$QE? zTOx<{*min5qY$9c+Ae*NlV$L|_y%BKcZeX&v#+plfNg!Sh4@K?$1z^woWFK9fC^?S z|C0)}D_VPHmF}v6`>27O^Tg^K3>m3ljj@al5*2t97`cl9?4IbHRyR5Ki7P?I>fIk$ zLgRSTHGT03dcWlTw2AulAc6+RlC%Aum$lYXjDG%U=xP@x1legeF6D z<~sHU*S@7pkO=7<`+Gtt#mstGsa*qEF%{R|7S952iGOz5!nhR4(J^#(k{h~@>-)+Z zMLG;37bp0EFIU)-u7@m+%}3P9G20ntN7yfe4_fCb?nRiR?(nac-$kNYvL} zsHzL@+>E$W(}ZqTu1i73WMPtoy*rHvPfqp?`Ltmrd(W;bJ^Egd^d156T)IwuJL1ZI zW**tXELF`nF6|v^e()ztlsitne&Nr@6>NDLcQ}q3*(>=y6rJTZgM3QPZ(uzV@bUxZ{Z?XE!-qe+gT+c-P^6 zd@_8-Lnhy`&g!J;p6=I+$k=}!WfjXzriA_4m^U#RpW9z3 z+^SP}c<60m9A5BZ>ypy3N7quKl@gE9?YUZ-;3xaA?Sjl(C`oK`+>`??o?s?3%j@UYf8@+oHwBxjx zg`gR(zv7r}XCDNxJU}bhe#L}x3J-sw+b9UzmbBMMEResqgvdA-pVI}LSi6sGG3u5= z@w>f(n3zI2nZ^=K;53^TF$B5g-VNGLGKP6Do)4Uxj($0AGsQv-SW2i7=J~o*>GgT} zoOjdz!`@qk#nm)zqk)h>AV3BPu7f7HyF(zjySux)1b24`?(Pik8r(IwyX&63kH6pd z?CU@JPxd}rYox2YtLpCRTDAHn8b)5Zg(78$7uuADnp#+f!PCmDS|J#Z9@3w<5Y1RK zi4(htpDPOT737Ih4m~1W-b^gHM=3A*)O!(N>|?aEW{jCUa)L5LU^1&K1B7?|rWGz= z*m}QbTu@l^rtKMr&&6p*ybBeHpsfx)z|m<&Fj6B9j&JIF(~Tt#BWRQ_kGcbo`LHLb zR9fji#mp^#%VsRVf$~&K6<-Sqx&Dpf9^pR^m*+_VS_R;x$L==mFz0+<%^(`gnLs3C z?h#V&!J_xqHck*rW#I;Na5hUPlE`+1zJ2?ma{VgpjDzXrD~X^;PB58ScO)trRD=?SoQhZYe`o}8x!$nSNYh8n9Ul=)L2vK{K1}xXh zByv0{Ch3%z*PTW`x4bHGi!UlH`^~h;sa+%O?X_I;R7=1`ebHGrJj$PCh-+WQ!o^DeKmb!bG*Y| zP+!j^1`0iBmIM?g@ehtDo&(bF7GJ<~R#4Z7 z8HxT`9`-Y%1Blne-t4fPSf#hMFFrSvIVRGYH`W7x?gL#aSt-;o+ z`Nk=ww*zkpJUl#LGN@z^^(W&GJ^P)QWI(tvzm8@V&YQv&?|}2f2?)wAS#50L6Dac3 z=UBNFYE;82u6U6g4LL1bc_@SH#I!(I^8{k?4749|RxNiMx0A z&G5IcoG_R6vAgj7^MLrVZ5XFPIsX2a&(4D?5=gSp6tjLTwIEXeqSxs#lJQ2Vm53X4 zcl-7zGbQ1C9p`*<=28c%&N@rYjP07-QCON_HZmMi%i&K?SX^f>l6LW*dgwY37UA^B z5qnH7W!%npY&hK7f@fkF?BFHziea$Wziyc9G+^75N**Sd7Yj|t>Jfh^l)D<06d;MS zyL5hk-x!GfWkJsBjjg{*2xk12*c}C4SSDqF-uoAgFE^URCN>pS)*s>HYHKE&GFCSe zW7DKRZne!z_@e!^y*cp?!dmIO?Ne)%sId?UZ=NL753?ptDSeb!c=SkMg^>=R@aR8% z7K98p;|$QwYzZaXw4QtFA-RmXY3<3;6`D5cHE95?yg$bDb zn2+jQ#faQ+MEbRKp7;I__KEsvp08iuK|(?%*9>k~%;z9Xfa$k+iV4OD%F&RpOb;pAql&awi&b&OBjp@gR}J^>5RFYiv5=%B7vQ)` zl=(W?EOO_l6LM@}O25=}ag}7$&WGFekJcM}H+~o&doMpm^iSw`^^OG}{~&N$byb|H zI?*X#j35rU_)@#b3nplos}4zHx0;q~q<6H+bNA6IR)L2IA5b0pcwOcjRys4l*r|=j zREMx_X$`4{T;2onLijHp3njoVQfThUQ4gtKoRiI~TykAK()tY0t(#;bP>1l~W=*f$2_$i$-69P>D7UFBikn;5(mibq&#~j{)tpMaMH2QBs z*kHgyaB{Ne#r{(1U)(L={(9GmdI2>SkJw%QY5so`!V5OF1ALqjgMTAGtWp0Jy;`h} z+y0vn1U|43=shE*f2A}(Li!#!>+les{*Sfs52gO5SClh0VWH}zzqYPwwOTsuXqJ~k$^$sr#+ZQokNxnl1FdG&9W$${ zkfx`n8$6y|*iA4}{<%`thkM;qx!;}ZAAxG`!$<5cpe!D~PK=~vzWH5oM%++k>LCAL zZW+?Q(Wm#Yr&#yxZ?m~J1CWw6l7~u1It6>Mg?i6X14*#cQG@L~!@sHin%8U6cu|PE z>f=9#{x{VfC4%+lu+(UV`EQQ!fDd*A_e(<6-yr*M|NXtqvG8Ax(3dup_g`r6=hW38 z{<6{kzZ<_z$p5X`SQ-ysoXHV?$auNSAgLA7{ohSsOd95~&+}18$k?R1_M$F>h%v<; z^MBGS{fS!*#$bqdorE#|+p_!DD)*lclYe2s_Lk_u|1J@1K~|GsfL>RcN1*?VwbPpEir)Ml{qZ(?SF~?>-M|zFU!Tq7HUmzk3lC^TZ11TFDE6BimlDy|4>*v zC8^b-d3`20uitP`1_I~At%nZkOCncoDU475TzA_?kc`AvZ7u33OLHI1fnTJM?s?}2@^{}a#u_@p!y z?8XW!ymk?PTZI1E1+sPP_x~mKuUj5+@ETbj=lEgyZ!`X1eF=8L{(p(H2YoNMb+rg>(#|X@XLe9$XV7Hud^Y*8+ss{O1ip%)!hyhTh#nLWSFg^P6 zSBEChMLiDE01?Vj%>=sr#JNczR9G~lygnJlXWm9Z#_O z)SAo|qxUNmpNWR@>n)S0gjSw&Djtob4YD_VUreO$1p!4^$wixUJRnwCS%(jk-<;L% zd8d?Wiq40vV>PN+#xT=o;t3cH=z4qfGB3Y0wInS{*&gGsf7_~ox2F)jpu41X|DH*^ zJp5yv0~~*+;IDC$02VV~`K}s~HlMHXJKx@`+?AHmNBjuwI__c(RBuJzEh1_**&I#_ z-5q(bK0IX-b2Y($72H*&C&#?&wdXkTQ#z!0#N3O?s@xC;*eG=CsJVE@9qq?7qTk42 z+eF|B<)ucr)(Z=?(GhXuhHa+$_N(E9ksACEJd^*sxAN@m)v1Ck*OF3(cvRq*z<`V)h`{v{56>M`O1%fJE zOH>u%>yETkL(3b(a=Ax%rrjE(6BPODJFW zEKf!Gh`2C+?bI{YosBNkt%;93|NP?9T^U3mHgY%>H=-BS?AO?JZFMnwOTWrO^-u(3 zz4Fy$iyEszhWM8IFoEs@t_J2gw&d*@mTna=cr9RitIU_IJ6H;IcN6IB8wG_9eQ|ce zeyqVuow{m-<%&>JGn+!hN?WqNyOj_V6%p7ii0V(^r?q)PKu8H+@5#tMl>l7#3U#iM z!=z}0c9HK{3v*IJ{v6gEXiuc^ILnH=S6a(w(d2j-Z@FJz$SJn$#jAk__g?P*E`EK(3O zX#{l*O%mm!Cs6`Vb+Qw|gJJO{aImD`XhnuBOJNtEFp1tH93 zjY;q0V^t|LQ+se6vJgC~cht-^_bdT)lk%Q=4V{~+25{%60hux&MSI=tjU(|WdWC^Z zD)hP}hTH70Hw-NJ&u)pJFcZoonesb4t=~@YwMcugz&j`D=**F6*#kc3zwIb)hH=($ z_DNy>Vpq=hGsy%B+WBXSY@fF@pcj!h+WR+p(La_E3kWcV)xWZtlp`=*H+MoEfZpuY zn2baY1f9&__mEbTF{MVu+H6 z<^+DqukM3&yX0j$r>A^az>?jj>I;=_DTR&48|n!mudXQoOuobWS$jWE2IatrGmbZX z`_;W$F zV#Lr+Zam~>Ia-!N55Z66D~!wu;hbjNEY1zQf2_z2^1t>HpC`nnMz<`l(ypkA`stOi zOX;}btg+q$id|pvJq#VDKO!k}9pP&Pa);ZO58OM>%4?+9&2QI^3_V^pDiL%h#dlla zi%7X?bIVMIg>GMs62VF!$OnJOS)D@P;anEPFKM5dV`(-<3h0)wQk)l*%A?;piBHL1 z7VLLnU*J#|i7R1PWIXKe+Ny5Cn`U%L5d=&e46g?1F?x!~>=t}T<&g3cDP4x9<=(LW zc895r>VkUEhV(Nxx)5AlF#?pVt^6s-XfykTaJm56W)l5S)w{Fv^X7?g2XX+Z?t?#B z5M-3z+_0-SkoCRjenWJ_XGA^i=HtNcpRA$NZ5d#Mj$b8Vbo`ZBdE&_-K+VT4JFp+p3% z5m7J~P7bl4HXyL^Dl=%}dbU&jg{@<~@0{M?Ym`}zs>PXB3q;R?a9yr@%~84? zp+@3ivcz1gLf?pekuXdUP?gbeg_0u0tr!b{YTC>jw5uz*&wFd;2cLoWG*@Oljq6yaS zgc+6{^c{WQK+9{tHmA8s62w|rt{O%!<~csQ7=*=Sf3D$s1aG^>s9?yv%hJ6J$LT~N zM(yVAl_+h{xcvm3yH1D6QW#m6_u-sKuqs%0jylUhw{DUnJ?D_kK@q}R`mb3k(Tux7_o2{;M zTTC;yCnSTaXH^xpM^hG;FGm(2uCygozvrX{$e}AWV{>Ti+OF}l-n;UM19QQ$@E^U( zh8DkrhfyGScjFIJyM5tLXLF{RFQua29b*sQnL4GfRON(`4##MrqxZyku?>SdNqEF~ zw654YrI=*%u$0IKF{qjMtqfE5o0T#O!+e+~ZWuv}+fQ!29F9SYa=bl&hPNzoX`aYE ze2~DGP_8$HG&}Sm#&M`$u$)YaY#sI|k(LehuJ^+d%jAf3WCy z2u-bzNhGmRe6m`n6RS)--a{tRQE6@^)LwDz3oGEv=IEsLj5o$CD%oP_RKmuAP`WXL zdJJ`e6cPkZ$#wVi-35)qTr=s3@9h-QetA)wf#xd|5GW#Jvr8zfHYq9}pFLjT4b&tD z5P!z$7p&B=1!3Xh;!%w|0s@n08jgD#W6=2UrWW&nI&$WWJK?4wy{`$BIN6st;8nnn z^;J(q^%s=suI3-*?ai%ja4F2khEgn+u-Kndrw44o8!VhKFD&59AfkLyOc>b-mRVa0 zbsib}x$n@!`D-CPsi)CateT~cU}t=@5iYlelUL8r3EUf8#_pX%^S6h(tk)fI==iq0 zvG3Ql4J87FGK5YYt_e@AqLg$mKt^@W)$UIO=}DT~HdqI&w#ZwhPRa{+ywmI2v!pLV z8tv()Tvtm*VbC0G1O1ix%xuOP2S*ju&j+*2QdsIY~cv%8t#2m{-xL+v5Ng_hl+F*}vsP-#r$4=4Xv z?$7=NTcMN}pC@vuYT~loh9(PNDXTMGVgmcjdR&Jh5@uY-<7qc(7_wjXXe2-Q=7w)= zwQDmfy=8GUz*I6=9AKL#pF`CzrwgYUw>p3&egK@|Nl987P;~GK6%@%Txs!9lc6NS< zY9WUsN9|i5ckZ3i%(g6=<~#rVCIpeBQkEO?rQ?g{0yeY6B8RZE;bf}cW>^?^ipg#C zf42AE=Q@7ClBM`ASYBHh1aS<>XP zhvKl6K0(+?^-;Hf?}o~%(U$Uv=ONGgZOg?6jHW6o{urBqSl2I-c87}eDFeR#B|xfF_x zcJ?0T5cJ#%#ob>Umv?hSV8!5&Yv z=>R;L8r#ZSIf2@khgF*1sG66LceodUIPa89SGDz$@3}}mYMQipe0D7R*$+Z}B6%vF z&XsuAXD)h0i{8S3Q7-K0B>cPtW?urGlniDPhgm*ap!4_IB}V+7wHV6*$2N?geyExb zb5lSR8(;#1i|+Z}+2|7n37%D=-^|f%Dl#aLMHd$JI&Q4F9tz+lcINIg%4WTqPWUVv zO;!%7-Ah@y`bJ7AdgHN8#t=XvUWd&&*kol7Lc>g2YW`3#tx6mf4FE=9 ztR_t_*fzS}5ISlub6*rr0+Ur>qfEp}T?Z7FsuTM5Xt8>uXT^bAH93OAL9ZOdB0S{! z&MDpGJ$90Cs5&ZbI8CY_PbETKIWQ~XkfKtPy@zocfvuQ6X>>X;wrG-gisgs-xc2VG z+`e1m_vRHG#p$bax7D?sv%d|wG|Y>H@JZ`vS{;e1R%g$d;#mu?t{mfAtt9D2j$1~9 z!ybo&{_anS42y69*sQa8Zmzz?0nSRR-U1g{E3A|k@Ufq#VkU}*cel2W?z18NYHS}t zdM=x_vaIM_#<-6$j>6qqOdhJ~ft77@SwVEORB1fN@p@WfOk7K~ZyN_H(Xp-w3?7N0 zmCrbPZkEYDu8!h~^n7D2tRlBT;Cj%4i)4X|u%!2dIe5i()nUoZK{=YyyV&+Z%<;oB zG_&o=SK}lTTkJ(+Kkfc4mHoc=SK6~VVn`W{J20ykBT@?7j_yQ3$IKRG#WlvR_pqX! z^!Y;JsNTprU-QGu9^Yhw>-Ntf4Pbuq?ZSO#&zgBh=LMn&ls>}DY8%%0ON%5jM%%+R z{~7PqI%Ddi6Eo@$?uaA2O|1tyL}S;_68mi0X{58Tw3mui#={$`r}Ku;IVZRRgQ=S? z?)k88$sDkw`u!G@c-ZafBfb?n3Pd)!W#(;x-N7fGL5PSrAGWD=6!-B?6Lj|S4-z8D zxy-KbiJ8ihyjsz0Xs-7J9u)*#w#E1hzh0JH^g88zYgxV>%B{S8=$qgwPoULqSZO0& zO$+GT@hrGem3Z44^Ne$Uu023KX^0ktw}q_NeAspJ`p3HHNHR2}?*qPVI82ED6(Pva zQVL%zMj*7y?f1O9Hwp1~j~E@3YN(|T_eR(&8K(?`lAeCLeQn(Vtn?&xWYUp4MA$=x`- zM%nGrXLiM>>f!vLKnuD!R^cfS(EMhtB(bAPBF(RB{UlB13y$>-5>u6ut6emgx{~=E z?M5XG)XkAE=*e~Cho$XVceDAn{c+P3vg!xW^+cSAT8-o5+X%*iTTn-na_E2HcWnkK zvVp4PUX%lOpL%_ev-(3F1Crquf6waU(Iw^&H1doe>p6jJT_hA;hJ>i!^UWjW2`@Yy zHG))TrPO4+D0$3t z3yZm#-ct8ydUE4w12@;w4ZWrkto8y-$>z@KXhfN08#TjU#)Qm`Z_sC3gJd_bj*1e zp}GuKr=xCd<+9!(dSWMn)S-HU8Wc_)kDQK$^1X!I&!pd0a0#_8EoJh?+0J;V#h4X^ zbJ`Np@}MK$K7}Z;-i?S*!_~De%7z9UHmy2mfMGWB;s4!rQb`F8O5V%tbi(4P>kv|0R<~`8wMsB#_P&6 z>Y)#hiOCGR$Mq`lBV`T)u@ z;2veUvkj+m9y<&5&eF1YX#X&&gp_D?zQ%6XNx3C8w+{ic@4ll?=2dm5(WH%BRzsGC z^^=zv2B*W1d$p0q^35BAI6ZhCQP9kMYO4)%h%Ime<2g3H>KGp>FW(-}?{#KvJBZ?$N zH{`XF)rtO$*)^ z--aAj+6rVwOAZF(iD6s{$&z0QeFR<6d9d1%`E0F90Z!$LXq3K2q&X{iyC!Jeu{YCfw;(A*5NazG%h>`jazZQL=RCRbl@_sC@@dU1?r{}Mh?pnU zPK>=m4B|Y0e^9j6 z3r=N%tR2KvsvZv}$;yj(?i%l3J{ODchuX)XMUWBX!6bpW>OU-*SfBZPy(^lYHI1Rx zzMp~4w>~!w*^8dpu2Fm@?7YgZx+q%Mt5Fk-oL1NvD?=gLS^T7R6KS?fv+&`yrmEMW zE{UgJ-)z>C&TP$I&+Aj!Ez|de`PHXC2TY!N>|CarCG0R6WsNr*|UQ*K6i?q zRlN-s$pkDMSKY(SJ}1Luu*myk9*GuXd7LHw$Z~Q7P9RPNMKONtt8{Zlg_TUem)w>r zD0eI+xI!&(wb$j#duv!ODPW-ufV~*)8aY?@%*2dCg;cvr@>ObOQmvQ0 zrFJ9KT5^T|lIV~F^A5{Ky6{XIOT#T3E#~^bIc3*!GPI4v#^2z#8B0!TCsgT4Lv(4d*{eAEqy~Ib4aKvhQflZO#PHgq7 zyYu3vQP-^ms*_#ZmDxV2vCD+(mv~{Qmt^eJ&qx{5ZJvi+i%1xGOy>m&KJe1T+s%QZ z)LBwn)N(Ieed+4+=*vRmk$b6yRUze{AI~_N4d)$Xoyog^WIsHi;AEpKvrc(KJx&vD zDfN~+Uc%$PS5~5Ho%E@RvRCOQn&Zv2#rA-`6VZpG&`HKt@W2BoUK$+pQeh@_9j!ZxLg)ga0Fk)GYUiLDTdU!ISa!PPT8o%1PTWf zN8(}us{W*EC*6{gfSc{N zLE#H2KBU(!gmN>&jZQooSk9feaO3$Y4mR`-`K5gO%}P0gC*jJLLW`>{qYn@{Be+2< zfYV^cjEP~!8P4$@USf^Cb*(f6!@&(a+_3&jmd$?e;W+C#$`s&xFR^UK@x6sFrycM=l_5G~`Q@!;~L)el>vIo|{h}ZN-f-Oit7UZ7zxm&NR5qL@0sEWv_Ya zO~2?>Z*-_QI;{zvL31^ps^n`{tZm><8veJd0$vS|pmYpy3MVIdMJG*+sWf87b1N{- zTte}@kgdffth=euwZcd!C^U!x1KCwi>~?L_8}fpxJt`zj9qUB?&~|H;mx#k2TYDqm zb(MoedZXuNtXpjh8Dw$W;Ul}@mfmLR(x*xLYMLYK9<}sjR$+x8H@g{&K64rYRrxfL zFlsDXf*cK9#To?{l&8bDIRx`5G@xA2nUQ#w4&F%*GLi!^@v=ee zXA5$d9z8-1Do{J>`8D})b55*Z+Cwa$nn&JHdO#W8$iY5Ie3XHJ68-sg?y{p>L~~e` zMk+ctxz60HBQ!O_Y$3cyktJ6PLj>Gt<7QmV9pOcN@s1nZ3A)FV?-0A6fr|rAg-T>X z+o>NjDS6VBZVPV~@lIDJGd7r?+Pca%1$Efo%*P7kq?+hTQU(s({v_DF>)Y4lWgc+g=?2Xp8X=ciNqC${a zOJp&V4CXhwX?mZDtP9}g;$dH-FQ|8>WLqZIw5xpLqXcFA@L+#^LAtMrP7Vh*45@LN zXr$MS3+FlcUgykmAP=heUQVz>cBA66L5_mqGK1n#?lmcm+w_m&qk8ENZaPiEe zt78h=sG9eW-xoiL8{w`&*08GAH$<7n6N4CJO<7dv|8FDAm*>of30RYXq=9a7`w zLwC7Ymsv~~FkZhjoatPiz|yje1WY$m>SB!ntZhx`Z=qAyyTC;9D~Zc{)KNq}ZKl_(vMRN!|-&`{=;XEpxo50q`p$5@9*ee zNj_MewdWu{hgQ6w*W(c{#3nfC=rPoii44n`>VLf9O!ECEq|rNBxN*G!o0jrb!WQ?Eu>4K4rp%d<3aZKQKC zAiV@Fb8DPl%0p&3tgmmld*B(lQi!QZiB>n1>FV+<*RaxK76L#4SLrr0lvqOm-K7`R z@LkA$FL0U5JoBtCv{~`SalJ$?y2;}|Z zi04d;x?FK@`8%v64#)uAGeW;aCN)}*SE{rM7kfiUfS)DNmuGcm!>k;LT_=d~#`PC8 z#v=%i+bgbT4|lp14$+r>hq3I})I2^6pCy5NHF`huXDm%gL^fAmce=e-a5IzVZ9yZg z@0X~i>v2>mGRvzxF*XnDcrbXvOVV*iNB$z*1|Qa~l7#v2vx!#bT0-oljh)7Lh{GIw zj8v47`6%HB`t_|bLQ|TOd^US{QkflX*$&5!F5`hP+12>PC^+OM#~p@ zcFlJ?B&VsrsNPLS?Rs}K_480lytK@sX|YVYV4pURky&2-$792tEgeabo){VbkKS+H zqeq1vo)^t8RIpp#hj#R%{z)S9hF}28A zdCxqoV!1;69kBZ2iI|@N5yR1m7TZ)4p1zn9h=xQ!$(}N!u(nsplxAT(w#__1^i>{nCTmRi*xYJucn#k&LAa=h|SX@4u!Vc-To zXdW4D5T9OKAs0^hDouuEK#_cf0;x~QepCFWD#&*{^jJEP!gQ=wkFKmydoWvvXoVBh__Y&ELMafQKjxax`VBPg803si5MY z5rCUPb0v?jJrsk~*u6E1CFNIwNUyPrjMlEc@%&R?sVJkjP=GwUzKf;^`bDipHCg!x;s9 zOG^k7Y!uVIt{#vM?eSHXflW4Q-}!a6Tw+c9Wf8x<#}eh* zaQHUWE>pO=HXGI1RR3^*kpR^1?<^0ozUkDtf`o>Bh_0;Gf;+ucELcagWHMA2xBmHM z9UmcXnrSy}y0*4si87X#3oefnwb&iCCK9?N{&zt9%`_G`z!pro9Rwh2brKXRX={Va zprruh4Cln+^kLYLW6S#x8ON+V*^OXELyP>QmMJ^N)j^LJ5^6x9Atox1MUMT*e7I>s zF+&0!cO7b!=!LB`g`wCDdOEUvv|JVhoYQSLy}=pW2qvjH%?}f_+|aFRn@;hFtKF8*Hp7e3wYS2SMIZwmo62hxf|oqty9wR8f=pn4j$GTO)IDc()>i1x_V8Rmx~x2ie3Q}Z$n4>5}E9)D5p zpr>N}{s9+^y@%M_EHg?ZRfvL5?16%xpvUWlh;1%BJF{O7Oh=L$z8VWJ0s`8Tk(wL# zh|NZ*$HN1{6S&fe-Ob3)4ni ztKen3!faEA^3QR~3#VVwebJ-ngVA(v$62g>Kd;f&MXye|U@9%CwJWUF{7P(!<8|THfNC#aXK0PH%yKmz&l}qrahXNS42{+KR9h6?-w>C~3uQyX* zNH#98z+*Gwh^_;#Of&gk)LU>_2NgrsM{T4Q&G8>WO&w7$Wg4V%#ih~Y9)wWUx^8FV zv%E^ou0%^Xp$`-8)P%Aa88;|RIj!Nsa92b3$-rz5YwT;h-5m95Q%T(J^DCPpMfV9y zB83rG%*+jNBE&gsuC?`tny%??k7Ojai>}m+#beD&);i3_&mL*pQc2(Ujz(pwPJApu0j~IAyxa#P*+rZlz(X4c>ijOKWDyqo=k9HOtl$R zod;GpO3*?o=Nij|pb}*(K9|aT1W&o;4ZZ|a^Sh9kn&%A8f>#3v+16!A`26(_*LZyp#s=(_ImM#ga9@)}pVKeAPsc>N0Q z%+|W3*Wqy{>#|c>jmfsa)t$^1!sY`wN}{Wv>V-}+-M~zhP$ED1xmH*iC;-8ApHGYM zv%ucjHINAU-8;FqXn1)-LxPI4`v>j>^~09I+YC;M0Z%B_|N zXx|@$dF8 z&}Va#s|fo!)Zcglpm8+YE^m}qxTpb?`Ghr=hA5~Wxh6Ktn^Ldc~m3)vvAfhZ|IqWZp=RIkyz5rxyq&Rkj%q5xc z42$;sYwasK-i;HEr+i!A8gi{|Y{A4zp@s~HGg&aOT80HSc_ zUj@|23jX}6w`vxIfHg6T=ABJKs9(fvL&rs*$Nd&x-vI@P2jAE3{d!znpm~k=^Mo`o zMIrdKK?(>9dicJ``MMU%v1_s^VBw;l6Mi^@Svm2mr=&_C`dLd^kp1<^HHN=Da6;l8 zJWqX@jAQ|l7zA@ry&DS&b`Ra#*i+@FQD3BS79?Hh!btk;mI;K9nJnxCupKQq>G`O^ ziF#AE`Glb84m#H1ot#xcDY@|s01_w0(lVSQA`T@GyTX1op}|S*o>K`((&e+sdFu6y z8yR1G6VPSt2)g9;w7k9CL-e$KkmjI|meYKrbtqf3%741l9R<_uNu;9}no&{^4I={3 z*cyHuAhfPeK=Thx3a1I;8GOpB>NqRjC=lFIb|w)MB{%uN!6YFtO#!ti5U}rT{(OHa zBp~)`CHA^ljsh}aba))*k~Xh;=wWcY!TQiK$@k{PJe*a8^Mmxbp-HrwFXV^EHK-%b zY<1%@SKZ}xeI?E_h+F5o?CRS}+;lYdUwclMJbhCfm9XQ~PDZy<*r7@Y9>t!b#*-Puo3sN!hyj9 z>GrO3zR-6?;Jt)d#!~NmmeM#1t31O1;!9TCWp?+QaSSm%~kxxQz|OL)}}?H90ak_Fl|Ow4I{b3LEu(I{9@bX-v6bCeDrZfJ0<0zhJf zGci?)hO0xfSktbuG#2_%pL_!|#use40ez5_@B2QJbcqTQNvP$CN02jZq2$dRSqW(Z zkmO>M=s|hw`{UDY@%mF2ROi%=U25Vi^ciqv-EH`?YIwW4Tsic!nrv8(d0b`WN;hIx zpty!vcba3SJn948<}$nUYBqM+y)~O4{CmVna>ED1cgL*u(JpP3Z+b*2z6ZH z1lJe!aFN-mz%>juUOD9XSNaYgY#imZzqoL(1)i(P@FDmaN z)!;QFE?Z4$GWcI|qf;6rrY;_qm`@{Nwh5jDy&0oHip#e)499WZg;#Z`oQ6$Ki4;n0 zJK{n=QN5gzMp7#1UR%4;Z&oC)r{Y64gyN*+a7bO_T=6SK+Gij>g*|#PoDjweJ*;;v z%O_T;2rRzs&8)J#;;KH&ToDa;hMpc8{O5~GV}N%{;{dGXg@r>4dw%MWq_%qTkk1F? z%+*LJex21w%#7_sIeUJb)`9CLz;9epX zNh$M!;&*n|x;_V)U~SxzeA3*{(3#SdmDMlnI}b9O3E~Ml6?J9cVOO*Lnk6YQ%cj}g z3_1!c9LVx@7}y((G2F8B`jia_+Aia~x0A2$`VrGqc)6#mV?027V zf*1pN`8s)x4PD(rkx4}AzSL?rH)FywDo%Z``nY9$q$p!+Te+o-vco3n{*cR-pib28 zd&F+}d;}*ksTtc$eng<9j%E|n*kQ^>vOT8%W&Ch{_1UhA`w|b( zghWJOguMJDb}xkIG0&UC@Jh(MS*bqz3lvOT>cVt&L;R>ln`jGKuHA5mav}WMc z^>@nmse+8cB0thOHn$)nZybgM8{ZL0*@_DfaQZK z%{$YglmiTlD&-xw+;j$3neXqaB#dqLi_xFfFpq+5=GXghCm%2o?g<#^CrnD^sFgLT z-&@b!GwE^oJ@2ZC?gdL2p@lZ3tWB>u8QqIRLOh1sf zC(bb$xv2=Rm9yXXD4*3QnJSaXdz zG@rqSH;rfb5!dq01Ab7*RDaA8&-}B9U1GZR_JXC*`CAM6j!_ZyR;<7j+jpkDhbEd< zJ@bK9r8$w7c#!AxZ3k7PO6n&F>&t5D{bcle02Zk!{ZX_gx9y;M2X?a^XUwsI?*r!J z`42hD*2=dTv^%_5z9<^dvuye=q%Zg=BbpTNnukN2B>UTn19Uar{6(7zX2g)soy|E) zKGzk(vs+Tr>92~>tgkgTXsUx{P>KXIzg32@RwD|V}q^O&$< zyA5>+pV>vUNw%fOO@=rOB*15M4ZlFQ%M}!i)Twz~45g9G7kS9$BEC_DUjKOj`H!=d zcJiQ(b~6DD2@Z~kLb6KKMYcjYSX)XY!g`_9WzfkfL5pAT4SKoq_YX;`SjB+Vk(*Q; z;#z(1^g+4REBr_1cJEhvc@yYOyd~q8|ujH4M}`LL`z^548;441&)o1w1J?!FcGPA+ulo<_+Ph#Eo4t|2CSFGu`w^Mgw2 zg@ipF3ubh7XLcnagGn5AU2Z&l7rBlCI=NCW9<@W^Nfvqz77T+#IMbsT)(vcWQ0KfX z+>29v0*RRp%a11rQDD-|tb)aKjavr133fN#bF47pe-@Q1Ad zCr1zHMeEufu6QPV_@evNvBn!Vd^AHs;bTMiKB8|1R2AQDzAu9C`<4HcHs){VrxML8 z$?UNvnbh^}@t&`SW3NHBY}3V3(7T#_HtL!f?WTYzjn%n4@c}sL1ZL3N?a_%x-xavV z1Mc0axiG7WgPr8b2wv=HMTK?0nP9>U?ZHZ&h)sVkqNU}D;qp8LQ0`&``eX%Kwn1(Xvhe@BdP- z-ADPdgv3G&noWoH*t?kdb(*(D;#4;Bh>g+n8J=)J==hu{xIHzK4gCxOupjk=J6|C* zUZHA&-fa6;dMr`OT(>y&<}#5Up7@0LqlE4Q1%EC79d2?r4WIH{?@i1bX1J?9x0P9x znMPcYVJTvjyKIzwJhJYbn>he8EbJa)5kjya-|}aT(D*9uyb|+Ge4R|guyR;N3K16= zYW)h*>PV9OnL#DlKhHC|IfX@hu{h^gH{2bQ5z z(BGWSY`EUb9x*fTmRApm6XW7=adERIcT-Au!r_BAshM@DNrLlA5?U0PgD>dTpE3L~ zOr=zx)#kWuSlB1KD?-pNZ6>9@K%WmZ7AzW+V8ws= zY1AHoSB_P^muc^;bjmidU$zeLza@$pL*?5IbksRce!5s8u`~`|$zowv)a0F07Z6-x}v6*>2X= zYFD|8htAP8Jzp4~UtX-APSf%xEx=JR{sVrZ;@=p+@#Hr)COd1|&p^J)dXXOyZe^NE zB<9VPIU9yfYjb7P&#k&$35RAxFVS3NgrtDpoqcYEx9$^ZQ7gVKxSAP^la#=+9hDY9 zXo{iykpA&0Hx~Ap16D`igx4<|Qs}V#g)W{26U`lSmgr^UAdX^O1W0YQnyt8Yo9p(e z9kJfCS_!stxE87FYsV^eU_ncSzCDL#J6x$i z>^O!rXnqgF%62*N%2HgjpI77|3Mt`m$#%V7*JaM0aPqJ<>goD`!DVpVApRcv#1~~w zRDQ3>%8tDS=b?J&_*tUhf_^oJPt#v2Hx?o6R6{l15~hsx1RVT<3Wgmg5E;!pgN<_k zrzggHx5Yd#HpjCt3Z;t9k-mu^#N}!Ie+ASS-vO}r+~>8Lok7ETZKJitUfIraLPs4w zLCna;o&m2}Y@Vb$x!&I%s0eXKTGcYm| zmV=XXvRDrM!Ryc}Hw^mU!7*=Dp^Znt@lvFpf`Y=qVhzb3P@mn?S|HSi+QCfBqsn1Y z;4fH(Q4iSn$CdzutM;ce_R|q2B~{~|_rVqahLZ45;QeB47{fa`uG*t~XeB;Elq@vI zk7D>O%x0eK^=Q8`KW`(KU%!I>_!|@DG!jIK#-fX>oHf?hnwHhUQHUxY8fnWRo*~)M zz_pGj=~kH%s*-%VjwPW1Cx7XhxHKf-&*}ZIixlqq_)+Y`SrF1>EDiK1lR{G z@1x4XD;8VYND`vjRM0dD(p?Ix4l~RV(rm<@v6{VV`4a-bW0EvbzT z>UH?bZveQz1yQ|$VQ74fP)9Kk#R31G4keJB1WH89YU{lif4TX#DvL|HvW$C>=T^6$ zj#@!|A^-*uvKj)o1$GD-DJgKtQsH(JOxHpP@0vHSA6aVC!0*-1>K zSt+%>=-m!3Ah<%+izs;?&^0l=6?ZEi*@Q7!X%X0D!3ipD2@ahsTPizd|Ij1M5&q%r zFIdQLtwiyd5&|O-31{)2^zAW}2X7W^E(Zq0P&VUC84Ycsqf$bX`YWe>Ae zRl-Rt6M_&V6<8WfJ{MKLzS$xpR?GXh6%-AN*+EzR^c^zZ!v+^5EWPrU$02BM?KM(y zcX0n|89_i3sM(54zNMLV@|L42cG#))Sz0>U*0Mxw(Og9 zeJ2JvRs=ty)SOL{2~p^dm2=3hIFIEYI&*SM(VevLbhAt-B;$(Pn=QN2js&@fT~3^O zCiptzy?EMl9@A)Gsz$y`yi%HB2@fsF6#F?ql}=q_q&uQY1fpeK%}?sThyI^c{{7t_ zdpp##5r8`GUwixFb6IhPe@kNdu%eQ>gniwpE5N5^o6+lpJhNN=6We* zVnqJa!^iJry!nL ztR1~NnxnBY+G7_~v9ISfZ0!$tD*BVJjV9&aMNa){`0D#38ddpHM|K8#g}>s8#C0bz zAFi2stOLWeYSecc6`sOT6New}nkH<=@7yMy()NS*x9`$^lbe5Y&+~v{1BrasApV8_ zG_Ar~xIhXebCip3`~MyxaH)HN11T~bJey?ynB#yd49szW&Rff(`LE{xy4~;w5#WH8 zcKT1=)c@b1j|f2V^}d+-;5T^EfAz@;NOzlfkCgH6;|l+O-iEg~Kah}BcM={7v(TdE zLG9r@UgWYGyBEsM#nNjSFZFOP<#8ACxY^R?X#1FrobtcHkKU$yzkX%2V%Eg6tapV- zti=;svippAxdSZHj8yZAV8)?IahJ#czPhq&&t+=cx@V;H>m3i`3G}XVRfEP=ZEkBV zx_jb{(b=$+1D4QU&Q+yt zl74Kpb&9&1B@Df1E0Om+tdq0B0ecS0pgnNdI`N1w3v8!9G!J@Jgh0A`zG(RHDd)XvFDJ)`N$(Vya(vZ7gdQ`arv-1??QS@RZ|u;nh7{;aSP)R5{6!`Skq(DM zYD-k+pEKb=18W-|wj_cg;64%%>!@F{7{`m*Ec~>7cQ1Za{lO2HH`5%y^QYii~2odFsrxH6BQ|ZlCA0pBN*@KRgl|-_9T5G3{X? zA6>E1)6*e7%MUNjilMwIN4j@_A=5;7Ppwks62M(|i4~z;<8D#EqT9A-`bJvTZUB5h zF=5+Krn}i_9gWe4*Bds!*+V*DqK7v@Hsszm)d@e%GlezXYcBi%+%;NuHPBv-R#u%@ z&gJxxzC8_c56oB>K7K4)jXL|T>iuG$)Gm!@2} z0Qy0w{+)^CC6dMcI``H5I`%i+N9zJni*OB?vG+4Ly2z>F%XITCuC_Vkl!EZul8~ zrl(R@X@K@b!1tV;=fd;NLLr2Ut&t&wzFX98CF(wB;UKIqqvi_1iFye+W-zT$h)>_P z4G9!aINOb?<@l$o`2}>Q`_+0Q9dMs}WiicPLH0jI>aLC>h{qaGMSkk)R=3nP5EMRl zuoqDcALLZ4J)ZxRw^}aaWEGF~V7lL9L-*O(vc!n{5^n*CRAS%jAkZeN!zSjUMQ;19 zeWy6(63io-R)vlT&q#yr)%6g`Pb?O(+8;2(Q`;Kj8zd5`{XGb)F4X4Yxq-OLCHspZ ztX@|AY`{X&8o+LTkl=sI&jTEwczp~!)>k#JF#ood23LD}!vE7fAc=TVPuB_)hYi7N zG9c*Y!%iBhcKYc-)Y6*M18eJ~{yr09sPRAy#$agI(;8i*