Empty repo, this project has moved to Wikimedia Gitlab
Bug: T334398
Change-Id: I6abe4213eb036eb09eaa123abe24dc3a2c5e3d46
diff --git a/.editorconfig b/.editorconfig
deleted file mode 100644
index 13ef9af..0000000
--- a/.editorconfig
+++ /dev/null
@@ -1,3 +0,0 @@
-[*]
-indent_style = tab
-tab_width = 4
diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index 982d5ef..0000000
--- a/.eslintignore
+++ /dev/null
@@ -1 +0,0 @@
-**/function-schemata/**/*
diff --git a/.eslintrc.json b/.eslintrc.json
deleted file mode 100644
index bed3a16..0000000
--- a/.eslintrc.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "root": true,
- "extends": [
- "wikimedia/server"
- ],
- "rules": {
- "camelcase": "off",
- "no-use-before-define": "off",
- "no-shadow": "off",
- "jsdoc/no-undefined-types": "off",
- "no-underscore-dangle": "off"
- },
- "overrides": [
- {
- "files": "**/*.json",
- "extends": "wikimedia/json"
- }
- ]
-}
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
index 24cdde1..0000000
--- a/.gitignore
+++ /dev/null
@@ -1,9 +0,0 @@
-node_modules
-.eslintcache
-executors/python3/test/test_data/**
-executors/javascript/test/test_data/**
-executors/javascript/node_modules/**
-**/__pycache__/**
-**/venv/**
-.nyc_output/
-coverage/
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
index b411084..0000000
--- a/.gitmodules
+++ /dev/null
@@ -1,3 +0,0 @@
-[submodule "function-schemata"]
- path = executors/javascript/function-schemata
- url = https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-schemata.git
diff --git a/.gitreview b/.gitreview
deleted file mode 100644
index 8ce881c..0000000
--- a/.gitreview
+++ /dev/null
@@ -1,7 +0,0 @@
-[gerrit]
-host=gerrit.wikimedia.org
-port=29418
-project=mediawiki/services/function-evaluator.git
-track=1
-defaultrebase=0
-defaultbranch=master
diff --git a/.nycrc.json b/.nycrc.json
deleted file mode 100644
index f824d0c..0000000
--- a/.nycrc.json
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- "//": "For now, test the core of our repo. Later, this should possibly add the lib directory.",
- "include": [
- "routes/",
- "src/",
- "executors/javascript/"
- ],
-
- "//": "We don't care about test coverage of our tests, and function-schemata's tests are its own job.",
- "exclude": [
- "executors/javascript/test/",
- "executors/javascript/function-schemata/"
- ],
-
- "//": "Don't silently accept files with no tests at all.",
- "all": true,
-
- "//": "Put the reports where we expect them.",
- "report-dir": "coverage/",
-
- "//": "Report HTML (lcov), XML (clover), and a summary table in the terminal (text-summary).",
- "reporter": [
- "lcov",
- "clover",
- "text",
- "text-summary"
- ],
-
- "//": "Cache results between runs for developer happiness.",
- "cache": true,
-
- "//": "Enforce some level of code coverage per file; eventually these should each be 100%.",
- "per-file": true,
- "statements": 0.0,
- "branches": 0.0,
- "functions": 0.0,
- "lines": 0.0,
- "check-coverage": true
-}
diff --git a/.pipeline/blubber.yaml b/.pipeline/blubber.yaml
deleted file mode 100644
index aa5172f..0000000
--- a/.pipeline/blubber.yaml
+++ /dev/null
@@ -1,274 +0,0 @@
-# syntax=docker-registry.wikimedia.org/repos/releng/blubber/buildkit:v0.16.0
-version: v4
-base: docker-registry.wikimedia.org/nodejs16-slim
-lives:
- in: /srv/service
-runs:
- environment: { APP_BASE_PATH: /srv/service }
-
-variants:
- # These variants concern the soon-to-be-deprecated mono-evaluator that includes
- # all programming languages.
- build:
- copies:
- - from: local
- - from: local
- source: src/monolithicSoftwareLanguages.js
- destination: ./executorConfigurations.js
- apt: { packages: [git, build-essential, python3-dev] }
- # TODO (T318728): When/if we split the services, the evaluator will need
- # its own checkout of function-schemata.
- node: { requirements: [package.json, package-lock.json, executors/javascript/function-schemata/package.json, executors/javascript/function-schemata/package-lock.json] }
- runs:
- # Allow the application to write to the filesystem so we can generate coverage reports
- environment: { LINK: g++ }
- development:
- includes: [build]
- apt: { packages: [ca-certificates] }
- entrypoint: [node, server.js]
- test:
- includes: [build]
- apt: { packages: [ca-certificates] }
- entrypoint: [npm, test]
- runs:
- # Allow the application to write to the filesystem so we can generate coverage reports
- insecurely: true
- prep:
- includes: [build]
- node: { env: production }
-
- # This is the "omnibus" variant with all languages supported in one place
- production:
- copies: [prep]
- node: { env: production }
- apt: { packages: [python3] }
- entrypoint: [node, server.js]
-
- # These variants are for building, testing, and deploying an evaluator for
- # Python3 programming language varieties only.
- build-python3-all-evaluator:
- copies:
- - from: local
- source: app.js
- destination: .
- - from: local
- source: server.js
- destination: .
- - from: local
- source: package.json
- destination: .
- - from: local
- source: config*.yaml
- destination: .
- - from: local
- source: spec*.yaml
- destination: .
- - from: local
- source: targets.yaml
- destination: .
- - from: local
- source: src/
- destination: ./src
- - from: local
- source: lib/
- destination: ./lib
- - from: local
- source: routes/
- destination: ./routes
- - from: local
- source: static/
- destination: ./static
- - from: local
- source: executors/python3/
- destination: ./executors/python3
- - from: local
- source: executors/javascript/function-schemata
- destination: ./executors/javascript/function-schemata
- - from: local
- source: executors/python3/pythonSoftwareLanguages.js
- destination: ./executorConfigurations.js
- - from: local
- source: test/
- destination: ./test
- - from: local
- source: test_data/
- destination: ./test_data
- - from: local
- source: .eslintrc.json
- destination: ./.eslintrc.json
- apt: { packages: [git, build-essential, python3-dev] }
- node: { requirements: [package.json, package-lock.json, executors/javascript/function-schemata/package.json, executors/javascript/function-schemata/package-lock.json] }
- runs:
- # Allow the application to write to the filesystem so we can generate coverage reports
- environment: { LINK: g++ }
- development-python3-all:
- includes: [build-python3-all-evaluator]
- apt: { packages: [ca-certificates] }
- entrypoint: [node, server.js]
- prep-python3-all:
- includes: [build-python3-all-evaluator]
- node: { env: production }
- production-python3-all:
- copies: [prep-python3-all]
- node: { env: production }
- apt: { packages: [python3] }
- entrypoint: [node, server.js]
- test-python3-all-evaluator:
- includes: [build-python3-all-evaluator]
- apt: { packages: [ca-certificates] }
- entrypoint: [npm, run, test:python3-all]
- runs:
- # Allow the application to write to the filesystem so we can generate coverage reports
- insecurely: true
-
- # These variants are for building, testing, and deploying an evaluator for
- # JavaScript programming language varieties only.
- build-javascript-all-evaluator:
- copies:
- - from: local
- source: app.js
- destination: .
- - from: local
- source: server.js
- destination: .
- - from: local
- source: package.json
- destination: .
- - from: local
- source: config*.yaml
- destination: .
- - from: local
- source: spec*.yaml
- destination: .
- - from: local
- source: targets.yaml
- destination: .
- - from: local
- source: src/
- destination: ./src
- - from: local
- source: lib/
- destination: ./lib
- - from: local
- source: routes/
- destination: ./routes
- - from: local
- source: static/
- destination: ./static
- - from: local
- source: executors/javascript/
- destination: ./executors/javascript
- - from: local
- source: executors/javascript/javaScriptSoftwareLanguages.js
- destination: ./executorConfigurations.js
- - from: local
- source: test/
- destination: ./test
- - from: local
- source: test_data/
- destination: ./test_data
- - from: local
- source: .eslintrc.json
- destination: ./.eslintrc.json
- apt: { packages: [git, build-essential] }
- node: { requirements: [package.json, package-lock.json, executors/javascript/function-schemata/package.json, executors/javascript/function-schemata/package-lock.json] }
- runs:
- # Allow the application to write to the filesystem so we can generate coverage reports
- environment: { LINK: g++ }
- development-javascript-all:
- includes: [build-javascript-all-evaluator]
- apt: { packages: [ca-certificates] }
- entrypoint: [node, server.js]
- prep-javascript-all:
- includes: [build-javascript-all-evaluator]
- node: { env: production }
- production-javascript-all:
- copies: [prep-javascript-all]
- node: { env: production }
- entrypoint: [node, server.js]
- test-javascript-all-evaluator:
- includes: [build-javascript-all-evaluator]
- apt: { packages: [ca-certificates] }
- entrypoint: [npm, run, test:javascript-all]
- runs:
- # Allow the application to write to the filesystem so we can generate coverage reports
- insecurely: true
-
- # These variants are for testing the Python3 executor code only, without the
- # service layer.
- build-python3-executor:
- base: docker-registry.wikimedia.org/python3-devel:0.0.2
- apt: { packages: [python3-dev, python3-setuptools, python3-pkgconfig] }
- lives:
- in: /executors/python3
- copies:
- - from: local
- source: executors/python3
- destination: .
- - from: local
- source: test_data
- destination: ./test/test_data
- python:
- version: python3
- test-python3-executor:
- includes: [build-python3-executor]
- lives:
- in: /executors/python3
- python:
- use-system-flag: false
- requirements:
- - from: local
- source: executors/python3/requirements-dev.txt
- destination: ./requirements-dev.txt
- entrypoint: [pytest]
- build-format-python3:
- base: docker-registry.wikimedia.org/python3-build-bullseye
- lives:
- in: /executors/python3
- copies:
- - from: local
- source: executors/python3
- destination: .
- format-python3:
- includes: [build-format-python3]
- lives:
- in: /executors/python3
- python:
- use-system-flag: false
- requirements:
- - from: local
- source: executors/python3/requirements-format.txt
- destination: ./requirements-format.txt
- entrypoint: [sh, "./format.sh"]
-
- # These variants are for testing the JavaScript executor code only, without the
- # service layer.
- build-javascript-executor:
- lives:
- in: /executors/javascript
- copies:
- - from: local
- source: executors/javascript/
- destination: .
- - from: local
- source: test_data
- destination: ./test/test_data
- node:
- requirements:
- - from: local
- source: executors/javascript/package.json
- destination: ./package.json
- - from: local
- source: executors/javascript/package-lock.json
- destination: ./package-lock.json
- - from: local
- source: executors/javascript/function-schemata/package.json
- destination: ./function-schemata/package.json
- - from: local
- source: executors/javascript/function-schemata/package-lock.json
- destination: ./function-schemata/package-lock.json
- test-javascript-executor:
- includes: [build-javascript-executor]
- lives:
- in: /executors/javascript
- entrypoint: [npm, test]
diff --git a/.pipeline/config.yaml b/.pipeline/config.yaml
deleted file mode 100644
index 4d8a608..0000000
--- a/.pipeline/config.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-pipelines:
- test:
- blubberfile: blubber.yaml
- stages:
- - name: build-python3-executor
- build: build-python3-executor
- run: false
- - name: test-python3-executor
- - name: build-format-python3
- build: build-format-python3
- run: false
- - name: format-python3
- - name: build-javascript-executor
- build: build-javascript-executor
- run: false
- - name: test-javascript-executor
- - name: build
- build: build
- run: false
- - name: test
- - name: build-python3-all-evaluator
- build: build-python3-all-evaluator
- run: false
- - name: test-python3-all-evaluator
- - name: build-javascript-all-evaluator
- build: build-javascript-all-evaluator
- run: false
- - name: test-javascript-all-evaluator
- execution:
- - [build-python3-executor, test-python3-executor]
- - [build-format-python3, format-python3]
- - [build-javascript-executor, test-javascript-executor]
- - [build, test]
- - [build-python3-all-evaluator, test-python3-all-evaluator]
- - [build-javascript-all-evaluator, test-javascript-all-evaluator]
- publish:
- blubberfile: blubber.yaml
- stages:
- - name: test
- build: test
- run: true
- - name: production
- build: production
- publish:
- image:
- tags:
- - latest
- - '${setup.tag}'
- - name: build-and-publish-python3-all
- build: production-python3-all
- publish:
- image:
- name: wikimedia/mediawiki-services-function-evaluator-python3-all
- tags:
- - latest
- - name: build-and-publish-javascript-all
- build: production-javascript-all
- publish:
- image:
- name: wikimedia/mediawiki-services-function-evaluator-javascript-all
- tags:
- - latest
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
deleted file mode 100644
index 498acf7..0000000
--- a/CODE_OF_CONDUCT.md
+++ /dev/null
@@ -1 +0,0 @@
-The development of this software is covered by a [Code of Conduct](https://www.mediawiki.org/wiki/Special:MyLanguage/Code_of_Conduct).
diff --git a/LICENSE b/LICENSE
deleted file mode 100644
index e06d208..0000000
--- a/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
-Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
diff --git a/README.md b/README.md
index 180f5f6..6f17043 100644
--- a/README.md
+++ b/README.md
@@ -1,117 +1,3 @@
-<a href='introduction'></a>
-# Wikifunctions function-evaluator
-
-The evaluator service executes user-written 'native' code in a variety of programming languages.
-The repository consists of the [evaluator service](#evaluator-service) and a
-variety of language-specific [executors](#executors).
-
-## Local installation
-You should use one of the [Docker images](https://docker-registry.wikimedia.org/wikimedia/mediawiki-services-function-evaluator)
-for local use, and you do not need to download the raw code unless you want to
-modify the evalautor. If you're going to attempt that, remember to clone the
-repository with the `--recurse-submodules` flag:
-
-```
-git clone --recurse-submodules ssh://gerrit.wikimedia.org:29418/mediawiki/services/function-evaluator
-```
-
-If you've already cloned the repository but forgot that flag, you can adjust
-your local check-out with:
-
-```
-git submodule update --init
-```
-
-<a href='testing'></a>
-## Testing
-
-Before submitting, please run the integration tests. Please install Mediawiki core
-and the Wikilambda extension.
-
-- Point the extension to a local orchestrator by overriding the
- `$wgWikiLambdaOrchestratorLocation` config value in `LocalSettings.php` with something like:
-```
-$wgWikiLambdaOrchestratorLocation = "http://mediawiki-function-orchestrator-1:6254/";
-```
-- From the MediaWiki root directory, run the command `docker-compose exec mediawiki php tests/phpunit/phpunit.php extensions/WikiLambda/tests/phpunit/integration/API/ApiFunctionCallTest.php`
-- If your code hasn't made any breaking changes, all tests should pass.
-
-<a href='evaluator-service'></a>
-## Evaluator Service
-The evaluator itself is a thin wrapper (based on [service-template-node](https://www.mediawiki.org/wiki/ServiceTemplateNode))
-responsible for validating incoming objects as Z7/Function calls, determining the correct
-[executor](#executors) to delegate to, and returning either the result of
-function execution or an appropriate error back to the caller.
-
-<a href='executors'></a>
-## Executors
-An executor accepts as input a fully dereferenced Z7/Function call (with a single native-code implementation),
-executes the native code with the provided inputs, and returns a Z22/Pair containing
-in key Z22K1 either the result of successful execution or Z24/Void, and in Z22K2 any appropriate Z5/Errors.
-
-### Communication between the Evaluator and Executor
-As currently implemented, executors run as child processes of the main Node
-process. The evaluator initializes a child process corresponding to the correct
-programming language and runs the appropriate executor module. For example,
-in order to execute Python code, the evaluator spawns a subprocess with the
-command `python3 executors/python3/executor.py`.
-
-Thereafter, the evaluator communicates with the executor via I/O streams:
-`stdin`, `stdout`, and `stderr`. The evaluator writes the (JSON-stringified)
-Z7/Function call to the child process's `stdin`. The evaluator then waits until the
-subprocess terminates. Logs written to `stderr` in the executor will likewise
-be logged by the evaluator. The executor writes the (JSON-stringified) Z22/Pair
-to `stdout`, which the evaluator collects and returns as JSON.
-
-### Implementing a New Executor
-An executor must be able to do three things: 1) communicate with the main
-process via standard I/O streams; 2) deserialize ZObjects as appropriate native
-types (and perform the inverse serialization operation); and 3) execute code
-(via constructions like, e.g., `exec` or `eval`).
-The existing Python and JavaScript implementations can hopefully serve as a
-reference for how to accomplish these tasks, but serialization and deserialization
-deserve particular attention.
-
-For certain built-in types, there is a natural mapping between
-[ZType](https://meta.wikimedia.org/wiki/Abstract_Wikipedia/Reserved_ZIDs#Core_types)
-and primitive (or standard library) types; currently, executors can
-(de)serialize the following types:
-
-- Z6/String <-> string
-- Z21/Unit <-> nullary type (None, null, etc.)
-- Z40/Boolean <-> Boolean
-- Z881/Typed list <-> sequential container type (list, array, vector, etc.)
-- Z882/Typed pair <-> pair container type (tuple, etc.)
-- Z883/Typed map <-> key-value container type (map, dict, etc.)
-
-Any new executor must be able to support these. We expect the list of built-in
-types to grow (a little, and finitely); we also expect to be able to support
-(de)serialization of user-defined types, but executors can't handle this at
-present.
-
-Serialization is completely determined by introspection of types in each programming
-language. A str or String serializes as a Z6/String; a list, tuple, Array, etc. as a
-Z7 call to a Z881/Typed list; etc.
-
-To be precise: deserialization can trivially determine the type of a Z1/ZObject by
-consulting its `Z1K1` attribute, which reports the ZID corresponding to its type.
-However, serialization must rely on the language's introspection capabilities
-or some other strategy to determine type.
-
-<a href='repository-stewardship'></a>
-## Formatting Python Source Code
-
-- ### Create a Python Virtual Environment
-```
-VENVNAME=venv
-python3.6 -m venv ${VENVNAME}
-# Any Python version >= 3.6 will work; 3.6 is chosen here to keep pace with the
-# base Docker image in .pipeline/blubber.yaml#build-format-python3
-. ./${VENVNAME}/bin/activate
-pip install -r executors/python3/requirements-format.txt
-```
-
-- ### Run Black
-```
-python -m black executors/python3
-```
+# MOVED to Wikimedia GitLab
+
+This project now live at https://gitlab.wikimedia.org/repos/abstract-wiki/wikifunctions/function-evaluator.
diff --git a/app.js b/app.js
deleted file mode 100644
index e2364e6..0000000
--- a/app.js
+++ /dev/null
@@ -1,254 +0,0 @@
-'use strict';
-
-const http = require( 'http' );
-const BBPromise = require( 'bluebird' );
-const express = require( 'express' );
-const compression = require( 'compression' );
-const bodyParser = require( 'body-parser' );
-const fs = BBPromise.promisifyAll( require( 'fs' ) );
-const sUtil = require( './lib/util' );
-const apiUtil = require( './lib/api-util' );
-const packageInfo = require( './package.json' );
-const yaml = require( 'js-yaml' );
-const addShutdown = require( 'http-shutdown' );
-const path = require( 'path' );
-const WebSocket = require( 'ws' );
-const { getLogger, setLogger } = require( './src/logger.js' );
-
-/**
- * Creates an express app and initialises it
- *
- * @param {Object} options the options to initialise the app with
- * @return {bluebird} the promise resolving to the app object
- */
-function initApp( options ) {
-
- // the main application object
- const app = express();
-
- // wrap provided logger
- setLogger( options.logger );
- const logger = getLogger();
-
- // get the options and make them available in the app
- app.logger = logger; // the logging device
- app.metrics = options.metrics; // the metrics
- app.conf = options.config; // this app's config options
- app.info = packageInfo; // this app's package info
-
- // ensure some sane defaults
- app.conf.port = app.conf.port || 8888;
- app.conf.interface = app.conf.interface || '0.0.0.0';
- // eslint-disable-next-line max-len
- app.conf.compression_level = app.conf.compression_level === undefined ? 3 : app.conf.compression_level;
- app.conf.cors = app.conf.cors === undefined ? '*' : app.conf.cors;
- if ( app.conf.csp === undefined ) {
- app.conf.csp = "default-src 'self'; object-src 'none'; media-src 'none'; img-src 'none'; style-src 'none'; base-uri 'self'; frame-ancestors 'self'";
- }
-
- // set outgoing proxy
- if ( app.conf.proxy ) {
- process.env.HTTP_PROXY = app.conf.proxy;
- // if there is a list of domains which should
- // not be proxied, set it
- if ( app.conf.no_proxy_list ) {
- if ( Array.isArray( app.conf.no_proxy_list ) ) {
- process.env.NO_PROXY = app.conf.no_proxy_list.join( ',' );
- } else {
- process.env.NO_PROXY = app.conf.no_proxy_list;
- }
- }
- }
-
- // set up header whitelisting for logging
- if ( !app.conf.log_header_whitelist ) {
- app.conf.log_header_whitelist = [
- 'cache-control', 'content-type', 'content-length', 'if-match',
- 'user-agent', 'x-request-id'
- ];
- }
- app.conf.log_header_whitelist = new RegExp( `^(?:${app.conf.log_header_whitelist.map( ( item ) => {
- return item.trim();
- } ).join( '|' )})$`, 'i' );
-
- // set up the request templates for the APIs
- apiUtil.setupApiTemplates( app );
-
- // set up the spec
- if ( !app.conf.spec ) {
- app.conf.spec = `${__dirname}/spec.yaml`;
- }
- if ( app.conf.spec.constructor !== Object ) {
- try {
- app.conf.spec = yaml.safeLoad( fs.readFileSync( app.conf.spec ) );
- } catch ( e ) {
- app.logger.log( 'warn/spec', `Could not load the spec: ${e}` );
- app.conf.spec = {};
- }
- }
- if ( !app.conf.spec.openapi ) {
- app.conf.spec.openapi = '3.0.0';
- }
- if ( !app.conf.spec.info ) {
- app.conf.spec.info = {
- version: app.info.version,
- title: app.info.name,
- description: app.info.description
- };
- }
- app.conf.spec.info.version = app.info.version;
- if ( !app.conf.spec.paths ) {
- app.conf.spec.paths = {};
- }
-
- // set the CORS and CSP headers
- app.all( '*', ( req, res, next ) => {
- if ( app.conf.cors !== false ) {
- res.header( 'access-control-allow-origin', app.conf.cors );
- res.header( 'access-control-allow-headers', 'accept, x-requested-with, content-type' );
- res.header( 'access-control-expose-headers', 'etag' );
- }
- if ( app.conf.csp !== false ) {
- res.header( 'x-xss-protection', '1; mode=block' );
- res.header( 'x-content-type-options', 'nosniff' );
- res.header( 'x-frame-options', 'SAMEORIGIN' );
- res.header( 'content-security-policy', app.conf.csp );
- }
- sUtil.initAndLogRequest( req, app );
- next();
- } );
-
- // set up the user agent header string to use for requests
- app.conf.user_agent = app.conf.user_agent || app.info.name;
-
- // disable the X-Powered-By header
- app.set( 'x-powered-by', false );
- // disable the ETag header - users should provide them!
- app.set( 'etag', false );
- // enable compression
- app.use( compression( { level: app.conf.compression_level } ) );
- // use the JSON body parser
- app.use( bodyParser.json( { limit: app.conf.max_body_size || '100kb' } ) );
- // use the application/x-www-form-urlencoded parser
- app.use( bodyParser.urlencoded( { extended: true } ) );
- // use the raw body parser
- app.use( bodyParser.raw( { limit: app.conf.max_body_size || '100kb' } ) );
-
- return BBPromise.resolve( app );
-
-}
-
-/**
- * Loads all routes declared in routes/ into the app
- *
- * @param {Application} app the application object to load routes into
- * @param {string} dir routes folder
- * @return {bluebird} a promise resolving to the app object
- */
-function loadRoutes( app, dir ) {
-
- // recursively load routes from .js files under routes/
- return fs.readdirAsync( dir ).map( ( fname ) => {
- return BBPromise.try( () => {
- const resolvedPath = path.resolve( dir, fname );
- const isDirectory = fs.statSync( resolvedPath ).isDirectory();
- if ( isDirectory ) {
- loadRoutes( app, resolvedPath );
- } else if ( /\.js$/.test( fname ) ) {
- // import the route file
- const route = require( `${dir}/${fname}` );
- return route( app );
- }
- } ).then( ( route ) => {
- if ( route === undefined ) {
- return undefined;
- }
- // check that the route exports the object we need
- if ( route.constructor !== Object || !route.path || !route.router ||
- !( route.api_version || route.skip_domain ) ) {
- throw new TypeError( `routes/${fname} does not export the correct object!` );
- }
- // normalise the path to be used as the mount point
- if ( route.path[ 0 ] !== '/' ) {
- route.path = `/${route.path}`;
- }
- if ( route.path[ route.path.length - 1 ] !== '/' ) {
- route.path = `${route.path}/`;
- }
- if ( !route.skip_domain ) {
- route.path = `/:domain/v${route.api_version}${route.path}`;
- }
- // wrap the route handlers with Promise.try() blocks
- sUtil.wrapRouteHandlers( route, app );
- // all good, use that route
- app.use( route.path, route.router );
- } );
- } ).then( () => {
- // catch errors
- sUtil.setErrorHandler( app );
- // route loading is now complete, return the app object
- return BBPromise.resolve( app );
- } );
-
-}
-
-/**
- * Creates and start the service's web server
- *
- * @param {Application} app the app object to use in the service
- * @return {bluebird} a promise creating the web server
- */
-function createServer( app ) {
-
- // return a promise which creates an HTTP server,
- // attaches the app to it, and starts accepting
- // incoming client requests
- let server;
- let wss;
- return new BBPromise( ( resolve ) => {
- server = http.createServer( app ).listen(
- app.conf.port,
- app.conf.interface,
- resolve
- );
- server = addShutdown( server );
- wss = new WebSocket.Server( {
- server: server
- } );
- } ).then( () => {
- getLogger().log( 'info',
- `Worker ${process.pid} listening on ${app.conf.interface || '*'}:${app.conf.port}` );
-
- // Don't delay incomplete packets for 40ms (Linux default) on
- // pipelined HTTP sockets. We write in large chunks or buffers, so
- // lack of coalescing should not be an issue here.
- server.on( 'connection', ( socket ) => {
- socket.setNoDelay( true );
- } );
-
- app.wss = wss;
- return server;
- } );
-
-}
-
-/**
- * The service's entry point. It takes over the configuration
- * options and the logger- and metrics-reporting objects from
- * service-runner and starts an HTTP server, attaching the application
- * object to it.
- *
- * @param {Object} options the options to initialise the app with
- * @return {bluebird} HTTP server
- */
-module.exports = ( options ) => {
-
- return initApp( options )
- .then( ( app ) => loadRoutes( app, `${__dirname}/routes` ) )
- .then( ( app ) => {
- // serve static files from static/
- app.use( '/static', express.static( `${__dirname}/static` ) );
- return app;
- } ).then( createServer );
-
-};
diff --git a/bin/updateSubmodule.sh b/bin/updateSubmodule.sh
deleted file mode 100755
index dbfa8ac..0000000
--- a/bin/updateSubmodule.sh
+++ /dev/null
@@ -1,71 +0,0 @@
-#!/bin/bash -eu
-
-# This script generates a commit that updates the function-schemata submodule
-# ./bin/updateSubmodule.sh updates to main
-# ./bin/updateSubmodule.sh hash updates to specified hash
-
-# cd to the function-schemata directory
-cd $(cd $(dirname $0)/..; pwd)
-
-# Check that both working directories are clean
-if git status -uno --ignore-submodules | grep -i changes > /dev/null
-then
- echo >&2 "Working directory must be clean"
- exit 1
-fi
-cd executors/javascript/function-schemata/
-if git status -uno --ignore-submodules | grep -i changes > /dev/null
-then
- echo >&2 "function-schemata/ working directory must be clean"
- exit 1
-fi
-cd ../../..
-
-git fetch origin
-# Create sync-repos branch if needed and reset it to master
-git checkout -B sync-function-schemata -t origin/master
-git submodule update
-cd executors/javascript/function-schemata/
-git fetch origin
-
-# Figure out what to set the submodule to
-if [ -n "${1:-}" ]
-then
- TARGET="$1"
- TARGETDESC="$1"
-else
- TARGET=origin/main
- TARGETDESC="HEAD ($(git rev-parse --short origin/main))"
-fi
-
-# Generate commit summary
-# TODO recurse
-NEWCHANGES=$(git log ..$TARGET --oneline --no-merges --topo-order --reverse --color=never)
-TASKS=$(git log ..$TARGET --no-merges --format=format:%B | grep "Bug: T" | sort | uniq)
-NEWCHANGESDISPLAY=$(git log ..$TARGET --oneline --no-merges --topo-order --reverse --color=always)
-COMMITMSG=$(cat <<END
-Update function-schemata sub-module to $TARGETDESC
-
-New changes:
-$NEWCHANGES
-
-$TASKS
-END
-)
-# Check out target of function-schemata
-git checkout $TARGET
-
-# Commit
-cd ..
-git commit function-schemata -m "$COMMITMSG" > /dev/null
-if [ "$?" == "1" ]
-then
- echo >&2 "No changes"
-else
- cat >&2 <<END
-
-
-Created commit with changes:
-$NEWCHANGESDISPLAY
-END
-fi
diff --git a/config.dev.yaml b/config.dev.yaml
deleted file mode 100644
index 5bf0ed2..0000000
--- a/config.dev.yaml
+++ /dev/null
@@ -1,84 +0,0 @@
-# Number of worker processes to spawn.
-# Set to 0 to run everything in a single process without clustering.
-# Use 'ncpu' to run as many workers as there are CPU units
-num_workers: 0
-
-# Log error messages and gracefully restart a worker if v8 reports that it
-# uses more heap (note: not RSS) than this many mb.
-worker_heap_limit_mb: 250
-
-# Logger info
-logging:
- level: trace
-# name: <your app name>
-# streams:
-# - type: syslog
-# host: localhost
-# port: 10514
-# prefix: '@cee: '
-# name: node
-
-# eslint-disable-next-line yml/no-empty-mapping-value
-metrics:
-# - type: prometheus
-# port: 9000
-# Statsd metrics reporter
-# - type: statsd
-# host: localhost
-# port: 8125
-
-services:
- - name: service-template-node
- # a relative path or the name of an npm package, if different from name
- module: ./app.js
- # optionally, a version constraint of the npm package
- # version: ^0.4.0
- # per-service config
- conf:
- port: 6927
- # interface: localhost # uncomment to only listen on localhost
- # more per-service config settings
- # the location of the spec, defaults to spec.yaml if not specified
- spec: ./spec.template.yaml
- # allow cross-domain requests to the API (default '*')
- cors: "*"
- # to disable use:
- # cors: false
- # to restrict to a particular domain, use:
- # cors: restricted.domain.org
- # content for the CSP headers
- # csp: false # uncomment this line to disable sending them
- # URL of the outbound proxy to use (complete with protocol)
- # proxy: http://my.proxy.org:8080
- # the list of domains for which not to use the proxy defined above
- # no_proxy_list:
- # - domain1.com
- # - domain2.org
- # the list of incoming request headers that can be logged; if left empty,
- # the following headers are allowed: cache-control, content-length,
- # content-type, if-match, user-agent, x-request-id
- # log_header_whitelist:
- # - cache-control
- # - content-length
- # - content-type
- # - if-match
- # - user-agent
- # - x-request-id
- # the user agent to use when issuing requests
- # user_agent: service-template-node
- # max JSON POST body size limit
- max_body_size: 2mb
- # the template used for contacting the MW API
- mwapi_req:
- method: post
- uri: https://{{domain}}/w/api.php
- headers:
- user-agent: "{{user-agent}}"
- body: "{{ default(request.query, {}) }}"
- # the template used for contacting RESTBase
- restbase_req:
- method: "{{request.method}}"
- uri: https://{{domain}}/api/rest_v1/{+path}
- query: "{{ default(request.query, {}) }}"
- headers: "{{request.headers}}"
- body: "{{request.body}}"
diff --git a/config.prod.yaml b/config.prod.yaml
deleted file mode 100644
index 98a15aa..0000000
--- a/config.prod.yaml
+++ /dev/null
@@ -1,82 +0,0 @@
-# Number of worker processes to spawn.
-# Set to 0 to run everything in a single process without clustering.
-# Use 'ncpu' to run as many workers as there are CPU units
-num_workers: ncpu
-
-# Log error messages and gracefully restart a worker if v8 reports that it
-# uses more heap (note: not RSS) than this many mb.
-worker_heap_limit_mb: 500
-
-# Logger info
-logging:
- level: warn
- # name: <your app name>
- streams:
- - type: syslog
- host: localhost
- port: 10514
- prefix: "@cee: "
- name: node
-
-# Statsd metrics reporter
-metrics:
- type: statsd
- host: statsd.eqiad.wmnet
- port: 8125
-
-services:
- - name: service-template-node
- # a relative path or the name of an npm package, if different from name
- module: ./app.js
- # optionally, a version constraint of the npm package
- # version: ^0.4.0
- # per-service config
- conf:
- port: 6927
- # interface: localhost # uncomment to only listen on localhost
- # more per-service config settings
- # the location of the spec, defaults to spec.yaml if not specified
- # spec: ./spec.template.yaml
- # allow cross-domain requests to the API (default '*')
- cors: "*"
- # to disable use:
- # cors: false
- # to restrict to a particular domain, use:
- # cors: restricted.domain.org
- # content for the CSP headers
- # csp: false # uncomment this line to disable sending them
- # URL of the outbound proxy to use (complete with protocol)
- # proxy: http://my.proxy.org:8080
- # the list of domains for which not to use the proxy defined above
- # no_proxy_list:
- # - domain1.com
- # - domain2.org
- # the list of incoming request headers that can be logged; if left empty,
- # the following headers are allowed: cache-control, content-length,
- # content-type, if-match, user-agent, x-request-id
- # log_header_whitelist:
- # - cache-control
- # - content-length
- # - content-type
- # - if-match
- # - user-agent
- # - x-request-id
- # the user agent to use when issuing requests
- # user_agent: service-template-node
- # max JSON POST body size limit
- max_body_size: 2mb
- # the template used for contacting the MW API
- mwapi_req:
- method: post
- uri: http://api.svc.eqiad.wmnet/w/api.php
- headers:
- host: "{{request.params.domain}}"
- user-agent: "{{user-agent}}"
- body: "{{ default(request.query, {}) }}"
- # the template used for contacting RESTBase
- restbase_req:
- method: "{{request.method}}"
- uri: http://restbase.svc.eqiad.wmnet/{{domain}}/v1/{+path}
- query: "{{ default(request.query, {}) }}"
- headers: "{{request.headers}}"
- body: "{{request.body}}"
diff --git a/config.yaml b/config.yaml
deleted file mode 120000
index c11eec8..0000000
--- a/config.yaml
+++ /dev/null
@@ -1 +0,0 @@
-config.dev.yaml
\ No newline at end of file
diff --git a/executors/javascript/executor.js b/executors/javascript/executor.js
deleted file mode 100644
index 1f4c6bb..0000000
--- a/executors/javascript/executor.js
+++ /dev/null
@@ -1,104 +0,0 @@
-'use strict';
-
-// eslint-disable-next-line no-unused-vars
-const { serialize, deserialize } = require( './serialization.js' );
-// eslint-disable-next-line no-unused-vars
-const { ZObject, ZPair } = require( './ztypes.js' );
-
-const { makeMappedResultEnvelope } = require( './function-schemata/javascript/src/utils.js' );
-
-function error( message ) {
- return {
- Z1K1: { Z1K1: 'Z9', Z9K1: 'Z5' },
- Z5K2: { Z1K1: 'Z6', Z6K1: message }
- };
-}
-
-// eslint-disable-next-line no-unused-vars
-async function execute( functionCall, stdin = process.stdin, stdout = process.stdout ) {
- const resultCache = new Map();
- const boundValues = new Map();
- const argumentNames = [];
- const functionName = functionCall.functionName;
-
- // TODO (T282891): Handle input that fails to validate all at once instead of ad hoc.
- if ( functionName === undefined ) {
- return makeMappedResultEnvelope(
- null,
- error( 'Function call did not provide functionName.' )
- );
- }
-
- // TODO (T289319): Consider whether to reduce all keys to local keys.
- for ( const key of Object.keys( functionCall.functionArguments ) ) {
- argumentNames.push( key );
- boundValues.set( key, functionCall.functionArguments[ key ] );
- }
- argumentNames.sort();
-
- const implementation = functionCall.codeString;
- if ( implementation === undefined ) {
- return makeMappedResultEnvelope(
- null,
- error( 'Function call did not provide codeString.' )
- );
- }
-
- const returnValue = functionName + 'K0';
- // Why can't this just be defined directly in the eval statement?
- let callMe = null; // eslint-disable-line prefer-const
- const functionTemplate = `
- callMe = async function () {
- ${implementation}
-
- let boundLocals = [];
- for ( const key of argumentNames ) {
- const value = boundValues.get(key);
- boundLocals.push(deserialize(value));
- }
-
- resultCache.set(
- '${returnValue}',
- serialize(${functionName}.apply(null, boundLocals))
- );
- }
- `;
- try {
- eval( functionTemplate ); // eslint-disable-line no-eval
- await callMe();
- } catch ( e ) {
- console.error( e );
- return makeMappedResultEnvelope(
- null,
- error( e.message )
- );
- }
-
- return makeMappedResultEnvelope(
- resultCache.get( returnValue ),
- null
- );
-}
-
-function main( stdin = process.stdin, stdout = process.stdout, stderr = process.stderr ) {
- stdin.on( 'readable', async () => {
- let chunk;
- while ( ( chunk = stdin.read() ) !== null ) {
- const functionCall = JSON.parse( chunk );
- if ( functionCall ) {
- const result = await execute( functionCall, stdin, stdout );
- stdout.write( JSON.stringify( result ) );
- stdout.write( '\n' );
- break;
- }
- }
- stderr.write( 'end' );
- stderr.write( '\n' );
- } );
-}
-
-if ( module.parent === null ) {
- main();
-}
-
-module.exports = { execute, main };
diff --git a/executors/javascript/function-schemata b/executors/javascript/function-schemata
deleted file mode 160000
index adb4e69..0000000
--- a/executors/javascript/function-schemata
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit adb4e699831c46032a600acc66fb7dfff077620e
diff --git a/executors/javascript/javaScriptSoftwareLanguages.js b/executors/javascript/javaScriptSoftwareLanguages.js
deleted file mode 100644
index 8ee1301..0000000
--- a/executors/javascript/javaScriptSoftwareLanguages.js
+++ /dev/null
@@ -1,32 +0,0 @@
-'use strict';
-
-const softwareLanguages = require( './executors/javascript/function-schemata/data/definitions/softwareLanguages.json' ); // eslint-disable-line node/no-missing-require
-
-const executorConfigurations = new Map();
-
-for ( const languageVersion in softwareLanguages ) {
- let executorConfig;
-
- if ( languageVersion.startsWith( 'javascript' ) ) {
- executorConfig = {
- // TODO: This should use a different executable for different versions of Node once we
- // support them (needs said versioned binary to also exist first!).
- executable: 'node',
- callArguments: {
- args: [ 'executors/javascript/executor.js' ]
- }
- };
- }
-
- // Only register an executor if we recognised it (e.g. Lua doesn't yet have an executable here)
- if ( executorConfig ) {
- // Register this executor for the given ZID (e.g. 'Z601' or 'Z612')
- executorConfigurations.set( softwareLanguages[ languageVersion ], executorConfig );
-
- // Register this executor under the language string (e.g. 'javascript-es5' or 'python-3-5')
- // TODO (T287155): This is a legacy, and we will remove it
- executorConfigurations.set( languageVersion, executorConfig );
- }
-}
-
-module.exports = { executorConfigurations };
diff --git a/executors/javascript/package-lock.json b/executors/javascript/package-lock.json
deleted file mode 100644
index 839de36..0000000
--- a/executors/javascript/package-lock.json
+++ /dev/null
@@ -1,1770 +0,0 @@
-{
- "name": "js-executor",
- "version": "1.0.0",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "js-executor",
- "version": "1.0.0",
- "license": "ISC",
- "dependencies": {
- "chai": "4.3.4",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "mocha": "9.0.1"
- }
- },
- "node_modules/@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="
- },
- "node_modules/ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "node_modules/assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
- },
- "node_modules/camelcase": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
- "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/chai": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz",
- "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==",
- "dependencies": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^3.0.1",
- "get-func-name": "^2.0.0",
- "pathval": "^1.1.1",
- "type-detect": "^4.0.5"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
- "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/chalk/node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/chokidar": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
- "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
- "dependencies": {
- "anymatch": "~3.1.1",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.0",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.5.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.1"
- }
- },
- "node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/cliui/node_modules/ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/cliui/node_modules/strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dependencies": {
- "ansi-regex": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "node_modules/debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/debug/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "node_modules/decamelize": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/deep-eql": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
- "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
- "dependencies": {
- "type-detect": "^4.0.0"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-func-name": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/growl": {
- "version": "1.10.5",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
- "engines": {
- "node": ">=4.x"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/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=",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
- "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mocha": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.0.1.tgz",
- "integrity": "sha512-9zwsavlRO+5csZu6iRtl3GHImAbhERoDsZwdRkdJ/bE+eVplmoxNKE901ZJ9LdSchYBjSCPbjKc5XvcAri2ylw==",
- "dependencies": {
- "@ungap/promise-all-settled": "1.1.2",
- "ansi-colors": "4.1.1",
- "browser-stdout": "1.3.1",
- "chokidar": "3.5.1",
- "debug": "4.3.1",
- "diff": "5.0.0",
- "escape-string-regexp": "4.0.0",
- "find-up": "5.0.0",
- "glob": "7.1.7",
- "growl": "1.10.5",
- "he": "1.2.0",
- "js-yaml": "4.1.0",
- "log-symbols": "4.1.0",
- "minimatch": "3.0.4",
- "ms": "2.1.3",
- "nanoid": "3.1.23",
- "serialize-javascript": "5.0.1",
- "strip-json-comments": "3.1.1",
- "supports-color": "8.1.1",
- "which": "2.0.2",
- "wide-align": "1.1.3",
- "workerpool": "6.1.4",
- "yargs": "16.2.0",
- "yargs-parser": "20.2.4",
- "yargs-unparser": "2.0.0"
- },
- "bin": {
- "_mocha": "bin/_mocha",
- "mocha": "bin/mocha"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/mochajs"
- }
- },
- "node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/nanoid": {
- "version": "3.1.23",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
- "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw==",
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/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==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/pathval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
- "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==",
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/readdirp": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
- "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/serialize-javascript": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
- "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/string-width": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
- "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
- "dependencies": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "dependencies": {
- "ansi-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/wide-align": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
- "dependencies": {
- "string-width": "^1.0.2 || 2"
- }
- },
- "node_modules/workerpool": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.4.tgz",
- "integrity": "sha512-jGWPzsUqzkow8HoAvqaPWTUPCrlPJaJ5tY8Iz7n1uCz3tTp6s3CDG0FF1NsX42WNlkRSW6Mr+CDZGnNoSsKa7g=="
- },
- "node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dependencies": {
- "ansi-regex": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-unparser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
- "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "dependencies": {
- "camelcase": "^6.0.0",
- "decamelize": "^4.0.0",
- "flat": "^5.0.2",
- "is-plain-obj": "^2.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs/node_modules/ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yargs/node_modules/strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "dependencies": {
- "ansi-regex": "^5.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- }
- },
- "dependencies": {
- "@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="
- },
- "ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="
- },
- "ansi-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
- "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
- },
- "assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw=="
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
- },
- "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",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
- },
- "camelcase": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
- "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg=="
- },
- "chai": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.4.tgz",
- "integrity": "sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA==",
- "requires": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^3.0.1",
- "get-func-name": "^2.0.0",
- "pathval": "^1.1.1",
- "type-detect": "^4.0.5"
- }
- },
- "chalk": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz",
- "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==",
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- }
- }
- },
- "check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII="
- },
- "chokidar": {
- "version": "3.5.1",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz",
- "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==",
- "requires": {
- "anymatch": "~3.1.1",
- "braces": "~3.0.2",
- "fsevents": "~2.3.1",
- "glob-parent": "~5.1.0",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.5.0"
- }
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "requires": {
- "ansi-regex": "^5.0.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==",
- "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=="
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "debug": {
- "version": "4.3.1",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz",
- "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==",
- "requires": {
- "ms": "2.1.2"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
- }
- },
- "decamelize": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="
- },
- "deep-eql": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
- "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
- "requires": {
- "type-detect": "^4.0.0"
- }
- },
- "diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w=="
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
- },
- "fill-range": {
- "version": "7.0.1",
- "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"
- }
- },
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "optional": true
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
- },
- "get-func-name": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE="
- },
- "glob": {
- "version": "7.1.7",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
- "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "requires": {
- "is-glob": "^4.0.1"
- }
- },
- "growl": {
- "version": "1.10.5",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
- },
- "has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
- },
- "he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "is-binary-path": {
- "version": "2.1.0",
- "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"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
- },
- "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="
- },
- "is-glob": {
- "version": "4.0.1",
- "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-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
- },
- "is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
- },
- "is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "requires": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- }
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "mocha": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.0.1.tgz",
- "integrity": "sha512-9zwsavlRO+5csZu6iRtl3GHImAbhERoDsZwdRkdJ/bE+eVplmoxNKE901ZJ9LdSchYBjSCPbjKc5XvcAri2ylw==",
- "requires": {
- "@ungap/promise-all-settled": "1.1.2",
- "ansi-colors": "4.1.1",
- "browser-stdout": "1.3.1",
- "chokidar": "3.5.1",
- "debug": "4.3.1",
- "diff": "5.0.0",
- "escape-string-regexp": "4.0.0",
- "find-up": "5.0.0",
- "glob": "7.1.7",
- "growl": "1.10.5",
- "he": "1.2.0",
- "js-yaml": "4.1.0",
- "log-symbols": "4.1.0",
- "minimatch": "3.0.4",
- "ms": "2.1.3",
- "nanoid": "3.1.23",
- "serialize-javascript": "5.0.1",
- "strip-json-comments": "3.1.1",
- "supports-color": "8.1.1",
- "which": "2.0.2",
- "wide-align": "1.1.3",
- "workerpool": "6.1.4",
- "yargs": "16.2.0",
- "yargs-parser": "20.2.4",
- "yargs-unparser": "2.0.0"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "nanoid": {
- "version": "3.1.23",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.23.tgz",
- "integrity": "sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw=="
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "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=="
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "pathval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
- "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ=="
- },
- "picomatch": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz",
- "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw=="
- },
- "randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "requires": {
- "safe-buffer": "^5.1.0"
- }
- },
- "readdirp": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
- "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "serialize-javascript": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
- "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
- "requires": {
- "randombytes": "^2.1.0"
- }
- },
- "string-width": {
- "version": "2.1.1",
- "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"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
- },
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "to-regex-range": {
- "version": "5.0.1",
- "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"
- }
- },
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g=="
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "wide-align": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
- "requires": {
- "string-width": "^1.0.2 || 2"
- }
- },
- "workerpool": {
- "version": "6.1.4",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.1.4.tgz",
- "integrity": "sha512-jGWPzsUqzkow8HoAvqaPWTUPCrlPJaJ5tY8Iz7n1uCz3tTp6s3CDG0FF1NsX42WNlkRSW6Mr+CDZGnNoSsKa7g=="
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
- "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
- "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "strip-ansi": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
- "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
- "requires": {
- "ansi-regex": "^5.0.0"
- }
- }
- }
- },
- "yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="
- },
- "yargs-unparser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
- "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "requires": {
- "camelcase": "^6.0.0",
- "decamelize": "^4.0.0",
- "flat": "^5.0.2",
- "is-plain-obj": "^2.1.0"
- }
- },
- "yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
- }
- }
-}
diff --git a/executors/javascript/package.json b/executors/javascript/package.json
deleted file mode 100644
index 939f468..0000000
--- a/executors/javascript/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "name": "js-executor",
- "version": "1.0.0",
- "description": "",
- "main": "executor.js",
- "directories": {
- "test": "test"
- },
- "scripts": {
- "test": "mocha"
- },
- "author": "",
- "license": "ISC",
- "dependencies": {
- "chai": "4.3.4",
- "function-schemata": "file:./function-schemata",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "mocha": "9.0.1"
- }
-}
diff --git a/executors/javascript/serialization.js b/executors/javascript/serialization.js
deleted file mode 100644
index bcacdca..0000000
--- a/executors/javascript/serialization.js
+++ /dev/null
@@ -1,186 +0,0 @@
-'use strict';
-
-const { getListType, getZIDForJSType, getZObjectType, soupUpZ1K1 } = require( './utils.js' );
-const { ZObject, ZPair } = require( './ztypes.js' );
-
-const { convertItemArrayToZList } = require( './function-schemata/javascript/src/utils.js' );
-const { inspect } = require( 'util' );
-
-const DESERIALIZERS_ = new Map();
-
-function deserializeZList( ZObject ) {
- const result = [];
- let tail = ZObject;
- while ( true ) {
- const head = tail.K1;
- if ( head === undefined ) {
- break;
- }
- result.push( deserialize( head ) );
- tail = tail.K2;
- }
- return result;
-}
-
-function deserializeZMap( ZObject ) {
- const result = new Map();
- for ( const pair of deserialize( ZObject.K1 ) ) {
- result.set( pair.K1, pair.K2 );
- }
- return result;
-}
-
-// TODO (T290898): This can serve as a model for default deserialization--all
-// local keys can be deserialized and set as members.
-function deserializeZPair( ZObject ) {
- return new ZPair( deserialize( ZObject.K1 ), deserialize( ZObject.K2 ), ZObject.Z1K1 );
-}
-
-function deserializeZType( theObject ) {
- let Z1K1;
- const kwargs = new Map();
- for ( const key of Object.keys( theObject ) ) {
- const value = theObject[ key ];
- if ( key === 'Z1K1' ) {
- Z1K1 = value;
- } else {
- kwargs.set( key, deserialize( value ) );
- }
- }
- return new ZObject( kwargs, Z1K1 );
-}
-
-DESERIALIZERS_.set( 'Z6', ( Z6 ) => Z6.Z6K1 );
-// eslint-disable-next-line no-unused-vars
-DESERIALIZERS_.set( 'Z21', ( Z21 ) => null );
-DESERIALIZERS_.set( 'Z40', ( Z40 ) => Z40.Z40K1.Z9K1 === 'Z41' );
-DESERIALIZERS_.set( 'Z881', deserializeZList );
-DESERIALIZERS_.set( 'Z882', deserializeZPair );
-DESERIALIZERS_.set( 'Z883', deserializeZMap );
-const DEFAULT_DESERIALIZER_ = deserializeZType;
-
-/**
- * Convert a ZObject into the corresponding JS type.
- * Z6 -> String
- * Z21 -> Null
- * Z40 -> Boolean
- * Typed List ( Z881-generated type ) -> Array
- * Typed Pair ( Z882-generated type ) -> ZPair
- * Typed Map ( Z883-generated type ) -> Map
- * anything else -> ZObject
- *
- * @param {Object} ZObject
- * @return {Object}
- */
-function deserialize( ZObject ) {
- const ZID = getZObjectType( ZObject );
- let deserializer = DESERIALIZERS_.get( ZID );
- if ( deserializer === undefined ) {
- deserializer = DEFAULT_DESERIALIZER_;
- }
- return deserializer( ZObject );
-}
-
-function serializeZ21() {
- return { Z1K1: { Z1K1: 'Z9', Z9K1: 'Z21' } };
-}
-
-function serializeZ40( theBoolean ) {
- let ZID;
- if ( theBoolean ) {
- ZID = 'Z41';
- } else {
- ZID = 'Z42';
- }
- return {
- Z1K1: { Z1K1: 'Z9', Z9K1: 'Z40' },
- Z40K1: { Z1K1: 'Z9', Z9K1: ZID }
- };
-}
-
-function serializeZList( theArray ) {
- const elements = [];
- for ( const element of theArray ) {
- elements.push( serialize( element ) );
- }
- return convertItemArrayToZList( elements );
-}
-
-// TODO (T290898): This can serve as a model for default deserialization--all
-// local keys can be serialized and set as members.
-function serializeZType( theObject ) {
- const Z1K1 = theObject.Z1K1;
- if ( Z1K1 === undefined || Z1K1 === null ) {
- throw new Error( 'Could not serialize input JS object: ' + inspect( theObject ) );
- }
- const result = { Z1K1: Z1K1 };
- for ( const key of Object.keys( theObject ) ) {
- if ( key === 'Z1K1' ) {
- continue;
- }
- result[ key ] = serialize( theObject[ key ] );
- }
- return result;
-}
-
-function serializeZMap( theMap ) {
- const serializedKeys = [];
- for ( const key of theMap.keys() ) {
- serializedKeys.push( serialize( key ) );
- }
- const serializedValues = [];
- for ( const value of theMap.values() ) {
- serializedValues.push( serialize( value ) );
- }
- const keyType = getListType( serializedKeys );
- const valueType = getListType( serializedValues );
- const pairList = [];
- for ( const entry of theMap.entries() ) {
- pairList.push( new ZPair( ...entry ) );
- }
- return {
- Z1K1: {
- Z1K1: soupUpZ1K1( 'Z7' ),
- Z7K1: soupUpZ1K1( 'Z883' ),
- Z883K1: keyType,
- Z883K2: valueType
- },
- K1: serialize( pairList )
- };
-}
-
-const SERIALIZERS_ = new Map();
-SERIALIZERS_.set( 'Z6', ( theString ) => {
- return { Z1K1: 'Z6', Z6K1: theString };
-} );
-SERIALIZERS_.set( 'Z21', serializeZ21 );
-SERIALIZERS_.set( 'Z40', serializeZ40 );
-SERIALIZERS_.set( 'Z881', serializeZList );
-SERIALIZERS_.set( 'Z882', serializeZType );
-SERIALIZERS_.set( 'Z883', serializeZMap );
-const DEFAULT_SERIALIZER_ = serializeZType;
-
-/**
- * Convert a JS object into the corresponding ZObject type.
- * String -> Z6
- * null -> Z21
- * Boolean -> Z40
- * Array -> Typed List ( Z881-generated type )
- * ZPair -> Typed Pair ( Z882-generated type )
- * Map -> Typed Map ( Z883-generated type )
- * ZObject -> arbitrary ZObject
- *
- * @param {Object} theObject
- * @param {Object} expectedType
- * @return {Object} the serialized ZObject
- */
-function serialize( theObject ) {
- const ZID = getZIDForJSType( theObject );
- let serializer = SERIALIZERS_.get( ZID );
- if ( serializer === undefined ) {
- serializer = DEFAULT_SERIALIZER_;
- }
- return serializer( theObject );
-}
-
-module.exports = { deserialize, serialize };
diff --git a/executors/javascript/test/executor.js b/executors/javascript/test/executor.js
deleted file mode 100644
index c1de9fa..0000000
--- a/executors/javascript/test/executor.js
+++ /dev/null
@@ -1,200 +0,0 @@
-'use strict';
-
-const fs = require( 'fs' );
-const Stream = require( 'stream' );
-const { execute, main } = require( '../executor.js' );
-const { withoutZ1K1s } = require( './utils.js' );
-const assert = require( 'chai' ).assert;
-const { isVoid, isZMap } = require( '../function-schemata/javascript/src/utils.js' );
-
-function readTestJson( fileName ) {
- return JSON.parse( fs.readFileSync( './test/test_data/' + fileName, { encoding: 'utf8' } ) );
-}
-
-describe( 'JavaScript executor: main', () => { // eslint-disable-line no-undef
-
- let stdout;
- let stdoutQueue;
-
- beforeEach( () => { // eslint-disable-line no-undef
- stdoutQueue = [];
- stdout = new Stream.Writable();
- stdout._write = ( chunk, encoding, next ) => {
- stdoutQueue.push( chunk );
- next();
- };
- } );
-
- it( 'test main: add', () => { // eslint-disable-line no-undef
- const functionCall = readTestJson( 'javascript_add.json' );
- const functionCallString = JSON.stringify( functionCall );
- const expected = readTestJson( 'add_expected.json' );
- return new Promise( ( resolve ) => {
- const stdin = new Stream.Readable();
- stdin._read = () => {};
- stdout = new Stream.Writable();
- stdout._write = ( chunk ) => {
- stdoutQueue.push( chunk );
- resolve();
- };
- main( stdin, stdout );
- stdin.push( functionCallString );
- } ).then( () => {
- assert.deepEqual( withoutZ1K1s( expected ), withoutZ1K1s( JSON.parse( stdoutQueue.join( '' ) ) ) );
- assert.ok( isVoid( JSON.parse( stdoutQueue.join( '' ) ).Z22K2 ) ||
- isZMap( JSON.parse( stdoutQueue.join( '' ) ).Z22K2 ) );
- } );
- } );
-
- it( 'test main: syntax failure', () => { // eslint-disable-line no-undef
- const functionCall = readTestJson( 'javascript_syntax_failure.json' );
- const functionCallString = JSON.stringify( functionCall );
- const expected = readTestJson( 'javascript_syntax_failure_expected.json' );
- return new Promise( ( resolve ) => {
- const stdin = new Stream.Readable();
- stdin._read = () => {};
- stdout = new Stream.Writable();
- stdout._write = ( chunk ) => {
- stdoutQueue.push( chunk );
- resolve();
- };
- main( stdin, stdout );
- stdin.push( functionCallString );
- } ).then( () => {
- assert.deepEqual( withoutZ1K1s( expected ), withoutZ1K1s( JSON.parse( stdoutQueue.join( '' ) ) ) );
- } );
- } );
-
-} );
-
-describe( 'JavaScript executor', () => { // eslint-disable-line no-undef
-
- async function runTest( zobject, expectedResult ) {
- const result = await execute( zobject );
- assert.deepEqual( withoutZ1K1s( expectedResult ), withoutZ1K1s( result ) );
- assert.ok( isVoid( result.Z22K2 ) || isZMap( result.Z22K2 ) );
- }
-
- it( 'test runs function call', async () => { // eslint-disable-line no-undef
- await runTest(
- readTestJson( 'javascript_add.json' ),
- readTestJson( 'add_expected.json' )
- );
- } );
-
- it( 'test runs function call with generics', async () => { // eslint-disable-line no-undef
- await runTest(
- readTestJson( 'javascript_add_with_generics.json' ),
- readTestJson( 'add_expected.json' )
- );
- } );
-
- it( 'test compound type', async () => { // eslint-disable-line no-undef
- await runTest(
- readTestJson( 'javascript_compound_type.json' ),
- readTestJson( 'compound_type_expected.json' )
- );
- } );
-
- it( 'test list_o_lists_o_strings_input', async () => { // eslint-disable-line no-undef
- const functionCall = {
- functionName: 'Z1000',
- codeString: readTestJson( 'list_list_string_input_javascript_implementation.json' ).Z6K1,
- functionArguments: {
- Z1000K1: readTestJson( 'list_list_strings.json' )
- }
- };
- const expected = readTestJson( 'result_envelope_template.json' );
- expected.Z22K1 = readTestJson( 'string_in_lists.json' );
- await runTest( functionCall, expected );
- } );
-
- it( 'test list_o_lists_o_strings_output', async () => { // eslint-disable-line no-undef
- const functionCall = {
- functionName: 'Z1000',
- codeString: readTestJson( 'list_list_string_output_javascript_implementation.json' ).Z6K1,
- functionArguments: {
- Z1000K1: readTestJson( 'string_in_lists.json' )
- }
- };
- const expected = readTestJson( 'result_envelope_template.json' );
- expected.Z22K1 = readTestJson( 'list_list_strings.json' );
- await runTest( functionCall, expected );
- } );
-
- it( 'test list_o_lists_o_strings_output_unspecified', async () => { // eslint-disable-line no-undef
- const functionCall = {
- functionName: 'Z1000',
- codeString: readTestJson( 'list_list_string_output_javascript_implementation.json' ).Z6K1,
- functionArguments: {
- Z1000K1: readTestJson( 'string_in_lists.json' )
- }
- };
- const expected = readTestJson( 'result_envelope_template.json' );
- expected.Z22K1 = readTestJson( 'list_list_strings.json' );
- await runTest( functionCall, expected );
- } );
-
- it( 'test pair_string_pair_string_string_input', async () => { // eslint-disable-line no-undef
- const functionCall = {
- functionName: 'Z1000',
- codeString: readTestJson( 'pair_string_pair_string_string_input_javascript_implementation.json' ).Z6K1,
- functionArguments: {
- Z1000K1: readTestJson( 'pair_string_pair_string_string.json' )
- }
- };
- const expected = readTestJson( 'result_envelope_template.json' );
- expected.Z22K1 = readTestJson( 'string_in_pairs.json' );
- await runTest( functionCall, expected );
- } );
-
- it( 'test pair_string_pair_string_string_output', async () => { // eslint-disable-line no-undef
- const functionCall = {
- functionName: 'Z1000',
- codeString: readTestJson( 'pair_string_pair_string_string_output_javascript_implementation.json' ).Z6K1,
- functionArguments: {
- Z1000K1: readTestJson( 'string_in_pairs.json' )
- }
- };
- const expected = readTestJson( 'result_envelope_template.json' );
- expected.Z22K1 = readTestJson( 'pair_string_pair_string_string.json' );
- await runTest( functionCall, expected );
- } );
-
- it( 'test map_string_string', async () => { // eslint-disable-line no-undef
- const functionCall = readTestJson( 'map_string_string_Z7.json' );
- functionCall.codeString = readTestJson( 'map_string_string_javascript_implementation.json' ).Z6K1;
- functionCall.functionArguments.Z1802K1 = readTestJson( 'map_string_bool.json' );
- const expected = readTestJson( 'result_envelope_template.json' );
- expected.Z22K1 = readTestJson( 'map_string_string.json' );
- await runTest( functionCall, expected );
- } );
-
- it( 'test user-defined input', async () => { // eslint-disable-line no-undef
- const functionCall = readTestJson( 'javascript_user_defined_input.json' );
- functionCall.functionArguments.Z1000K1 = readTestJson( 'user_defined_input_Z1000K1.json' );
- await runTest( functionCall, readTestJson( 'user_defined_input_expected.json' ) );
- } );
-
- it( 'test unserializable type', async () => { // eslint-disable-line no-undef
- await runTest(
- readTestJson( 'javascript_unsupported_output.json' ),
- readTestJson( 'javascript_unsupported_output_expected.json' )
- );
- } );
-
- it( 'test no functionName', async () => { // eslint-disable-line no-undef
- await runTest(
- readTestJson( 'javascript_no_function_name.json' ),
- readTestJson( 'no_function_name_expected.json' )
- );
- } );
-
- it( 'test no codeString', async () => { // eslint-disable-line no-undef
- await runTest(
- readTestJson( 'javascript_no_code_string.json' ),
- readTestJson( 'no_code_string_expected.json' )
- );
- } );
-
-} );
diff --git a/executors/javascript/test/serialization.js b/executors/javascript/test/serialization.js
deleted file mode 100644
index 2602cb6..0000000
--- a/executors/javascript/test/serialization.js
+++ /dev/null
@@ -1,319 +0,0 @@
-'use strict';
-
-const { serialize, deserialize } = require( '../serialization.js' );
-const { ZObject, ZPair } = require( '../ztypes.js' );
-const { withoutZ1K1s } = require( './utils.js' );
-const assert = require( 'chai' ).assert;
-
-const Z881_Z1_Type_ = {
- Z1K1: { Z1K1: 'Z9', Z9K1: 'Z7' },
- Z7K1: { Z1K1: 'Z9', Z9K1: 'Z881' },
- Z881K1: { Z1K1: 'Z9', Z9K1: 'Z1' }
-};
-const Z882_Type_ = {
- Z1K1: { Z1K1: 'Z9', Z9K1: 'Z7' },
- Z7K1: { Z1K1: 'Z9', Z9K1: 'Z882' },
- Z882K1: { Z1K1: 'Z9', Z9K1: 'Z6' },
- Z882K2: { Z1K1: 'Z9', Z9K1: 'Z6' }
-};
-
-const Z6_ = { Z1K1: 'Z6', Z6K1: 'opiparo' };
-const Z881_Z1_INPUT_ = {
- Z1K1: Z881_Z1_Type_,
- K1: {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z40'
- },
- Z40K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z41'
- }
- },
- K2: {
- Z1K1: Z881_Z1_Type_,
- K1: {
- Z1K1: 'Z6',
- Z6K1: 'tRue'
- },
- K2: {
- Z1K1: Z881_Z1_Type_,
- K1: {
- Z1K1: Z881_Z1_Type_
- },
- K2: {
- Z1K1: Z881_Z1_Type_
- }
- }
- }
-};
-const Z21_ = {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z21'
- }
-};
-const Z39_ = {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z39'
- },
- Z39K1: {
- Z1K1: 'Z6',
- Z6K1: 'Z1000K1'
- }
-};
-const ZTrue_ = {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z40'
- },
- Z40K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z41'
- }
-};
-const ZFalse_ = {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z40'
- },
- Z40K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z42'
- }
-};
-const Z86_ = {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z86'
- },
- Z86K1: {
- Z1K1: 'Z6',
- Z6K1: '%'
- }
-};
-const Z882_ = {
- Z1K1: Z882_Type_,
- K1: { Z1K1: 'Z6', Z6K1: 'pigs' },
- K2: { Z1K1: 'Z6', Z6K1: 'just pigs' }
-};
-
-const Z6_DESERIALIZED_ = 'opiparo';
-const Z881_Z1_DESERIALIZED_ = [ true, 'tRue', [] ];
-const Z881_Z6_DESERIALIZED_ = [ 'horses', 'regular ungulates' ];
-const Z882_DESERIALIZED_ = new ZPair( 'pigs', 'just pigs' );
-
-const Z881_Z6_Type_ = {
- Z1K1: { Z1K1: 'Z9', Z9K1: 'Z7' },
- Z7K1: { Z1K1: 'Z9', Z9K1: 'Z881' },
- Z881K1: { Z1K1: 'Z9', Z9K1: 'Z6' }
-};
-const Z881_Z6_ = {
- Z1K1: Z881_Z6_Type_,
- K1: { Z1K1: 'Z6', Z6K1: 'horses' },
- K2: {
- Z1K1: Z881_Z6_Type_,
- K1: { Z1K1: 'Z6', Z6K1: 'regular ungulates' },
- K2: { Z1K1: Z881_Z6_Type_ }
- }
-};
-
-const USER_DEFINED_TYPE_ = {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z4'
- },
- Z4K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z10101'
- },
- Z4K2: {
- Z1K1: {
- Z1K1: { Z1K1: 'Z9', Z9K1: 'Z7' },
- Z7K1: { Z1K1: 'Z9', Z9K1: 'Z881' },
- Z881K1: { Z1K1: 'Z9', Z9K1: 'Z3' }
- },
- K1: {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z3'
- },
- Z3K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z6'
- },
- Z3K2: {
- Z1K1: 'Z6',
- Z6K1: 'Z10101K1'
- },
- Z3K3: {
- Z1K1: 'Z9',
- Z9K1: 'Z333'
- }
- },
- K2: {
- Z1K1: {
- Z1K1: { Z1K1: 'Z9', Z9K1: 'Z7' },
- Z7K1: { Z1K1: 'Z9', Z9K1: 'Z881' },
- Z881K1: { Z1K1: 'Z9', Z9K1: 'Z3' }
- },
- K1: {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z3'
- },
- Z3K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z6'
- },
- Z3K2: {
- Z1K1: 'Z6',
- Z6K1: 'Z10101K2'
- },
- Z3K3: {
- Z1K1: 'Z9',
- Z9K1: 'Z333'
- }
- },
- K2: {
- Z1K1: {
- Z1K1: { Z1K1: 'Z9', Z9K1: 'Z7' },
- Z7K1: { Z1K1: 'Z9', Z9K1: 'Z881' },
- Z881K1: { Z1K1: 'Z9', Z9K1: 'Z3' }
- }
- }
- }
- },
- Z4K3: {
- Z1K1: 'Z9',
- Z9K1: 'Z222'
- }
-};
-const USER_DEFINED_DESERIALIZED_ = new ZObject(
- new Map( [ [ 'Z10101K1', 'tRue' ], [ 'Z10101K2', 'trUe' ] ] ),
- USER_DEFINED_TYPE_
-);
-const USER_DEFINED_DESERIALIZED_NO_Z1K1_ = new ZObject(
- new Map( [ [ 'Z10101K1', 'tRue' ], [ 'Z10101K2', 'trUe' ] ] )
-);
-const USER_DEFINED_ = {
- Z1K1: USER_DEFINED_TYPE_,
- Z10101K1: {
- Z1K1: 'Z6',
- Z6K1: 'tRue'
- },
- Z10101K2: {
- Z1K1: 'Z6',
- Z6K1: 'trUe'
- }
-};
-
-describe( 'Javascript executor: deserialization', () => { // eslint-disable-line no-undef
-
- it( 'test deserializes Z6', () => { // eslint-disable-line no-undef
- assert.deepEqual( Z6_DESERIALIZED_, deserialize( Z6_ ) );
- } );
-
- it( 'test deserializes list of Z1', () => { // eslint-disable-line no-undef
- assert.deepEqual( Z881_Z1_DESERIALIZED_, deserialize( Z881_Z1_INPUT_ ) );
- } );
-
- it( 'test deserializes Z21', () => { // eslint-disable-line no-undef
- assert.deepEqual( null, deserialize( Z21_ ) );
- } );
-
- it( 'test deserializes Z39', () => { // eslint-disable-line no-undef
- assert.deepEqual( 'Z1000K1', deserialize( Z39_ ).Z39K1 );
- } );
-
- it( 'test deserializes Z40: Z41', () => { // eslint-disable-line no-undef
- assert.deepEqual( true, deserialize( ZTrue_ ) );
- } );
-
- it( 'test deserializes Z40: Z42', () => { // eslint-disable-line no-undef
- assert.deepEqual( false, deserialize( ZFalse_ ) );
- } );
-
- it( 'test deserializes Z86', () => { // eslint-disable-line no-undef
- assert.deepEqual( '%', deserialize( Z86_ ).Z86K1 );
- } );
-
- it( 'test deserializes Z882', () => { // eslint-disable-line no-undef
- const expected = Z882_DESERIALIZED_;
- const actual = deserialize( Z882_ );
- assert.deepEqual( expected.K1, actual.K1 );
- assert.deepEqual( expected.K2, actual.K2 );
- } );
-
- it( 'test deserializes user-defined', () => { // eslint-disable-line no-undef
- const expected = USER_DEFINED_DESERIALIZED_;
- const actual = deserialize( USER_DEFINED_ );
- assert.deepEqual( expected, actual );
- } );
-
-} );
-
-describe( 'Javascript executor: serialization', () => { // eslint-disable-line no-undef
-
- function runTest( expected, actual ) {
- assert.deepEqual( withoutZ1K1s( expected ), withoutZ1K1s( actual ) );
- }
-
- it( 'test serializes Z6', async () => { // eslint-disable-line no-undef
- runTest( Z6_, await serialize( Z6_DESERIALIZED_ ) );
- } );
-
- it( 'test serializes list of Z1', async () => { // eslint-disable-line no-undef
- runTest( Z881_Z1_INPUT_, await serialize( Z881_Z1_DESERIALIZED_, Z881_Z1_Type_ ) );
- } );
-
- it( 'test serializes Z21', async () => { // eslint-disable-line no-undef
- runTest( Z21_, await serialize( null ) );
- } );
-
- it( 'test serializes Z40: Z41', async () => { // eslint-disable-line no-undef
- runTest( ZTrue_, await serialize( true ) );
- } );
-
- it( 'test serializes Z40: Z42', async () => { // eslint-disable-line no-undef
- runTest( ZFalse_, await serialize( false ) );
- } );
-
- it( 'test serializes Z882', async () => { // eslint-disable-line no-undef
- runTest( Z882_, await serialize( Z882_DESERIALIZED_ ) );
- } );
-
- it( 'test serializes Z882 default', async () => { // eslint-disable-line no-undef
- runTest( Z882_, await serialize( Z882_DESERIALIZED_ ) );
- } );
-
- it( 'test serializes Z881', async () => { // eslint-disable-line no-undef
- runTest( Z881_Z6_, await serialize( Z881_Z6_DESERIALIZED_ ) );
- } );
-
- it( 'test serializes Z882', async () => { // eslint-disable-line no-undef
- assert.deepEqual( Z882_, await serialize( Z882_DESERIALIZED_ ) );
- } );
-
- it( 'test serializes Z881', async () => { // eslint-disable-line no-undef
- assert.deepEqual( Z881_Z6_, await serialize( Z881_Z6_DESERIALIZED_ ) );
- } );
-
- it( 'test serializes user-defined', async () => { // eslint-disable-line no-undef
- const expected = USER_DEFINED_;
- const actual = await serialize( USER_DEFINED_DESERIALIZED_, USER_DEFINED_TYPE_ );
- assert.deepEqual( expected, actual );
- } );
-
- it( 'test serializes user-defined as Z1 no Z1K1', async () => { // eslint-disable-line no-undef
- const expectedMessage = "Could not serialize input JS object: ZObject { Z1K1: null, Z10101K1: 'tRue', Z10101K2: 'trUe' }";
- let actualError;
- try {
- await serialize( USER_DEFINED_DESERIALIZED_NO_Z1K1_ );
- } catch ( error ) {
- actualError = error;
- }
- assert.deepEqual( expectedMessage, actualError.message );
- } );
-} );
diff --git a/executors/javascript/test/utils.js b/executors/javascript/test/utils.js
deleted file mode 100644
index f53282a..0000000
--- a/executors/javascript/test/utils.js
+++ /dev/null
@@ -1,20 +0,0 @@
-'use strict';
-
-const { isString } = require( '../utils.js' );
-
-function withoutZ1K1s( ZObject ) {
- const newObject = {};
- for ( const key of Object.keys( ZObject ) ) {
- if ( key === 'Z1K1' ) {
- continue;
- }
- let value = ZObject[ key ];
- if ( !isString( value ) ) {
- value = withoutZ1K1s( value );
- }
- newObject[ key ] = value;
- }
- return newObject;
-}
-
-module.exports = { withoutZ1K1s };
diff --git a/executors/javascript/utils.js b/executors/javascript/utils.js
deleted file mode 100644
index 9cea786..0000000
--- a/executors/javascript/utils.js
+++ /dev/null
@@ -1,119 +0,0 @@
-'use strict';
-
-const { inspect } = require( 'util' );
-const { isString } = require( './function-schemata/javascript/src/utils.js' );
-const stableStringify = require( 'json-stable-stringify-without-jsonify' );
-
-function soupUpZ1K1( Z1K1 ) {
- if ( isString( Z1K1 ) ) {
- return { Z1K1: 'Z9', Z9K1: Z1K1 };
- }
- return Z1K1;
-}
-
-// TODO (T282891): All isZWhatev functions should use function-schemata.
-function isZReference( Z9 ) {
- return Z9 !== undefined && Z9.Z1K1 === 'Z9' && isString( Z9.Z9K1 );
-}
-
-function isZFunctionCall( Z7 ) {
- return Z7 !== undefined && Z7.Z1K1 !== undefined && Z7.Z1K1.Z9K1 === 'Z7';
-}
-
-function isZType( Z4 ) {
- return Z4 !== undefined && Z4.Z1K1 !== undefined && Z4.Z1K1.Z9K1 === 'Z4';
-}
-
-function isZFunction( Z8 ) {
- return Z8 !== undefined && Z8.Z1K1 !== undefined && Z8.Z1K1.Z9K1 === 'Z8';
-}
-
-function getListType( theList ) {
- const Z1K1s = new Set();
- let firstZ1K1;
- for ( const element of theList ) {
- if ( firstZ1K1 === undefined ) {
- firstZ1K1 = element.Z1K1;
- }
- // TODO (T293915): Use ZObjectKeyFactory to create string representations.
- Z1K1s.add( stableStringify( element.Z1K1 ) );
- }
- let elementType;
- if ( Z1K1s.size === 1 ) {
- elementType = soupUpZ1K1( JSON.parse( Z1K1s.values().next().value ) );
- } else {
- elementType = soupUpZ1K1( 'Z1' );
- }
- return elementType;
-}
-
-function getZID( Z4 ) {
- if ( isZFunction( Z4 ) ) {
- return getZID( Z4.Z8K5 );
- }
- if ( isZReference( Z4 ) ) {
- return Z4.Z9K1;
- }
- if ( isZFunctionCall( Z4 ) ) {
- return getZID( Z4.Z7K1 );
- }
- if ( isZType( Z4 ) ) {
- return getZID( Z4.Z4K1 );
- }
- if ( isString( Z4 ) ) {
- // If Z4 is a string, original object was a Z6 or a Z9.
- return Z4;
- }
- return null;
-}
-
-/**
- * Determine the ZID corresponding to the type of a ZObject.
- *
- * @param {Object} ZObject
- * @return {string} the object's type ZID
- */
-function getZObjectType( ZObject ) {
- return getZID( ZObject.Z1K1 );
-}
-
-const typeMap = new Map();
-typeMap.set( 'String', 'Z6' );
-typeMap.set( 'Null', 'Z21' );
-typeMap.set( 'Boolean', 'Z40' );
-typeMap.set( 'Array', 'Z881' );
-typeMap.set( 'Map', 'Z883' );
-
-/**
- * Infer the type of a JS object and try to find the corresponding ZID.
- * String -> Z6
- * Null -> Z21
- * Boolean -> Z40
- *
- * @param {Object} theObject
- * @return {string} the ZID corresponding to the appropriate serialized type
- */
-function getZIDForJSType( theObject ) {
- const inspected = inspect( theObject );
- if ( inspected.startsWith( 'ZPair' ) ) {
- return 'Z882';
- }
- if ( inspected.startsWith( 'ZObject' ) ) {
- return 'DEFAULT';
- }
- const typeRegex = /\[object (\w*)\]/;
- // Object.toString will return [object <TYPE>]; <TYPE> is what we're after.
- const typeString = Object.prototype.toString.call( theObject ).replace( typeRegex, '$1' );
- const ZID = typeMap.get( typeString );
- return ZID;
-}
-
-module.exports = {
- getListType,
- getZIDForJSType,
- getZID,
- getZObjectType,
- isString,
- isZType,
- soupUpZ1K1
-};
diff --git a/executors/javascript/ztypes.js b/executors/javascript/ztypes.js
deleted file mode 100644
index 4a930a1..0000000
--- a/executors/javascript/ztypes.js
+++ /dev/null
@@ -1,33 +0,0 @@
-'use strict';
-
-class ZPair {
- constructor( K1, K2, originalZ1K1 = null ) {
- if ( originalZ1K1 === null ) {
- const { serialize } = require( './serialization.js' );
- const { soupUpZ1K1 } = require( './utils.js' );
- originalZ1K1 = {
- Z1K1: soupUpZ1K1( 'Z7' ),
- Z7K1: soupUpZ1K1( 'Z882' ),
- Z882K1: soupUpZ1K1( serialize( K1 ).Z1K1 ),
- Z882K2: soupUpZ1K1( serialize( K2 ).Z1K1 )
- };
- }
- this.Z1K1 = originalZ1K1;
- this.K1 = K1;
- this.K2 = K2;
- }
-}
-
-class ZObject {
- constructor( kwargs, originalZ1K1 = null ) {
- this.Z1K1 = originalZ1K1;
- for ( const entry of kwargs.entries() ) {
- this[ entry[ 0 ] ] = entry[ 1 ];
- }
- }
-}
-
-module.exports = {
- ZObject,
- ZPair
-};
diff --git a/executors/python3/__init__.py b/executors/python3/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/executors/python3/__init__.py
+++ /dev/null
diff --git a/executors/python3/exceptions.py b/executors/python3/exceptions.py
deleted file mode 100644
index 734a2da..0000000
--- a/executors/python3/exceptions.py
+++ /dev/null
@@ -1,2 +0,0 @@
-class EvaluatorError(Exception):
- pass
diff --git a/executors/python3/executor.py b/executors/python3/executor.py
deleted file mode 100644
index 42aa7ee..0000000
--- a/executors/python3/executor.py
+++ /dev/null
@@ -1,115 +0,0 @@
-import json
-import logging
-import sys
-
-import os
-
-from python3 import serialization
-from python3 import utils
-from python3 import ztypes
-from python3 import wikifunctions
-
-
-_RESULT_CACHE = {}
-
-
-_FUNCTION_TEMPLATE = """
-{implementation}
-
-
-bound_values = dict()
-for key, value in _BOUND_VALUES.items():
- bound_values[key] = _DESERIALIZE(value)
-
-
-_RESULT_CACHE['{return_value}'] = _SERIALIZE(
- {function_name}(**bound_values)
-)
-"""
-
-
-# TODO (T282891): Collapse this into function-schemata.
-def _error(message):
- return {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z5"},
- "Z5K2": {"Z1K1": "Z6", "Z6K1": message},
- }
-
-
-def void():
- """Creates a Z24 (Void).
-
- Returns:
- ZObject corresponding to Z24
- """
- # TODO (T282891): Use function-schemata version.
- return {"Z1K1": "Z9", "Z9K1": "Z24"}
-
-
-def execute(function_call, stdin=sys.stdin, stdout=sys.stdout):
- # TODO (T282891): Handle input that fails to validate all at once instead of ad hoc.
- try:
- function_name = function_call["functionName"]
- except KeyError:
- return utils.make_mapped_result_envelope(
- None, _error("Function call did not provide functionName.")
- )
-
- # TODO (T289319): Consider whether to reduce all keys to local keys.
- argument_names = []
- bound_values = {}
- for key, value in function_call.get("functionArguments", {}).items():
- argument_names.append(key)
- bound_values[key] = value
- try:
- implementation = function_call["codeString"]
- except KeyError:
- return utils.make_mapped_result_envelope(
- None, _error("Function call did not provide codeString.")
- )
-
- return_value = function_name + "K0"
- try:
- exec(
- _FUNCTION_TEMPLATE.format(
- function_name=function_name,
- argument_list=",".join(argument_names),
- implementation=implementation,
- return_value=return_value,
- ),
- {
- "_RESULT_CACHE": _RESULT_CACHE,
- "W": wikifunctions.Wikifunctions(stdin, stdout),
- "ZPair": ztypes.ZPair,
- "ZObject": ztypes.ZObject,
- },
- {
- "_BOUND_VALUES": bound_values,
- # TODO (T288555): Pass serialization as native code.
- "_DESERIALIZE": serialization.deserialize,
- "_SERIALIZE": serialization.serialize,
- },
- )
- except Exception as e:
- logging.exception(e)
- return utils.make_mapped_result_envelope(None, _error(e.args[0]))
- else:
- return utils.make_mapped_result_envelope(_RESULT_CACHE[return_value], None)
-
-
-def main(stdin=sys.stdin, stdout=sys.stdout, stderr=sys.stderr):
- for line in stdin:
- function_call = json.loads(line)
- if function_call:
- result = execute(function_call, stdin, stdout)
- stdout.write(json.dumps(result))
- stdout.write("\n")
- stdout.flush()
- break
- stderr.write("end")
- stderr.write("\n")
- stderr.flush()
-
-
-if __name__ == "__main__":
- main()
diff --git a/executors/python3/format.sh b/executors/python3/format.sh
deleted file mode 100755
index bb34bd6..0000000
--- a/executors/python3/format.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/bin/bash
-python3 -m pip install black && python3 -m black --check .
diff --git a/executors/python3/pythonSoftwareLanguages.js b/executors/python3/pythonSoftwareLanguages.js
deleted file mode 100644
index ea24487..0000000
--- a/executors/python3/pythonSoftwareLanguages.js
+++ /dev/null
@@ -1,34 +0,0 @@
-'use strict';
-
-const softwareLanguages = require( './executors/javascript/function-schemata/data/definitions/softwareLanguages.json' ); // eslint-disable-line node/no-missing-require
-
-const executorConfigurations = new Map();
-
-for ( const languageVersion in softwareLanguages ) {
- let executorConfig;
-
- if ( languageVersion.startsWith( 'python' ) ) {
- executorConfig = {
- // TODO: This should use a different executable for different versions of python once we
- // support them (needs said versioned binary to also exist first!).
- executable: 'python3',
- callArguments: {
- // -u forces std* streams to be unbuffered
- args: [ '-u', 'executors/python3/executor.py' ],
- env: { PYTHONPATH: 'executors' }
- }
- };
- }
-
- // Only register an executor if we recognised it (e.g. Lua doesn't yet have an executable here)
- if ( executorConfig ) {
- // Register this executor for the given ZID (e.g. 'Z601' or 'Z612')
- executorConfigurations.set( softwareLanguages[ languageVersion ], executorConfig );
-
- // Register this executor under the language string (e.g. 'javascript-es5' or 'python-3-5')
- // TODO (T287155): This is a legacy, and we will remove it
- executorConfigurations.set( languageVersion, executorConfig );
- }
-}
-
-module.exports = { executorConfigurations };
diff --git a/executors/python3/requirements-dev.txt b/executors/python3/requirements-dev.txt
deleted file mode 100644
index e079f8a..0000000
--- a/executors/python3/requirements-dev.txt
+++ /dev/null
@@ -1 +0,0 @@
-pytest
diff --git a/executors/python3/requirements-format.txt b/executors/python3/requirements-format.txt
deleted file mode 100644
index ce6b298..0000000
--- a/executors/python3/requirements-format.txt
+++ /dev/null
@@ -1,2 +0,0 @@
--r requirements-dev.txt
-black
diff --git a/executors/python3/serialization.py b/executors/python3/serialization.py
deleted file mode 100644
index 8b66ade..0000000
--- a/executors/python3/serialization.py
+++ /dev/null
@@ -1,158 +0,0 @@
-from python3 import exceptions
-from python3 import utils
-from python3 import ztypes
-
-
-def _DESERIALIZE_ZLIST(ZObject):
- result = []
- tail = ZObject
- while True:
- head = tail.get("K1")
- if head is None:
- break
- result.append(deserialize(head))
- tail = tail.get("K2")
- return result
-
-
-# TODO (T290898): This can serve as a model for default deserialization--all
-# local keys can be deserialized and set as members.
-def _DESERIALIZE_ZPAIR(Z_object):
- return ztypes.ZPair(
- deserialize(Z_object["K1"]), deserialize(Z_object["K2"]), Z_object["Z1K1"]
- )
-
-
-def _DESERIALIZE_ZMAP(Z_object):
- return {pair.K1: pair.K2 for pair in deserialize(Z_object["K1"])}
-
-
-def _DESERIALIZE_ZTYPE(Z_object):
- Z1K1 = None
- kwargs = {}
- for key, value in Z_object.items():
- if key == "Z1K1":
- Z1K1 = value
- else:
- kwargs[key] = deserialize(value)
- return ztypes.ZObject(Z1K1, **kwargs)
-
-
-_DESERIALIZE_Z6 = lambda Z6: Z6["Z6K1"]
-_DESERIALIZE_Z21 = lambda Z21: None
-_DESERIALIZE_Z40 = lambda Z40: Z40["Z40K1"]["Z9K1"] == "Z41"
-_DESERIALIZERS = {
- "Z6": _DESERIALIZE_Z6,
- "Z21": _DESERIALIZE_Z21,
- "Z40": _DESERIALIZE_Z40,
- "Z881": _DESERIALIZE_ZLIST,
- "Z882": _DESERIALIZE_ZPAIR,
- "Z883": _DESERIALIZE_ZMAP,
-}
-_DEFAULT_DESERIALIZER = _DESERIALIZE_ZTYPE
-
-
-def deserialize(ZObject):
- """Convert a ZObject into the corresponding Python type.
- Z6 -> str
- Z21 -> None
- Z40 -> bool
- Typed List (Z881-generated type) -> list
- Typed Pair (Z882-generated type) -> ZPair
- Typed Map (Z883-generated type) -> dict
- anything else -> ZObject
- """
- ZID = utils.get_zobject_type(ZObject)
- deserializer = _DESERIALIZERS.get(ZID)
- if deserializer is None:
- deserializer = _DEFAULT_DESERIALIZER
- return deserializer(ZObject)
-
-
-def _soup_up_z1k1(Z1K1):
- if isinstance(Z1K1, str):
- return {"Z1K1": "Z9", "Z9K1": Z1K1}
- return Z1K1
-
-
-# Shorter alias.
-_z9 = _soup_up_z1k1
-
-
-def _SERIALIZE_Z21(nothing):
- return {"Z1K1": {"Z1K1": "Z9", "Z9K1": "Z21"}}
-
-
-def _SERIALIZE_Z40(boolean):
- ZID = "Z41" if boolean else "Z42"
- return {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z40"},
- "Z40K1": {"Z1K1": "Z9", "Z9K1": ZID},
- }
-
-
-def _SERIALIZE_ZLIST(iterable):
- elements = [serialize(element) for element in iterable]
- head_type = utils.get_list_type(elements)
- return utils.convert_list_to_zlist(elements, head_type)
-
-
-def _SERIALIZE_ZTYPE(the_object):
- Z1K1 = getattr(the_object, "Z1K1", None)
- if Z1K1 is None:
- raise exceptions.EvaluatorError(
- "Could not serialize input Python object: {}".format(repr(the_object))
- )
- result = {"Z1K1": Z1K1}
- for key, value in the_object.items():
- if key == "Z1K1":
- continue
- result[key] = serialize(value)
- return result
-
-
-def _SERIALIZE_ZMAP(the_dict):
- serialized_keys = map(serialize, the_dict.keys())
- serialized_values = map(serialize, the_dict.values())
- key_type = utils.get_list_type(serialized_keys)
- value_type = utils.get_list_type(serialized_values)
- # TODO (T321103): Avoid serializing the keys and values twice.
- pair_list = [ztypes.ZPair(*item) for item in the_dict.items()]
- return {
- "Z1K1": {
- "Z1K1": _z9("Z7"),
- "Z7K1": _z9("Z883"),
- "Z883K1": key_type,
- "Z883K2": value_type,
- },
- "K1": serialize(pair_list),
- }
-
-
-_SERIALIZE_Z6 = lambda string: {"Z1K1": "Z6", "Z6K1": string}
-_SERIALIZERS = {
- "Z6": _SERIALIZE_Z6,
- "Z21": _SERIALIZE_Z21,
- "Z40": _SERIALIZE_Z40,
- "Z881": _SERIALIZE_ZLIST,
- "Z882": _SERIALIZE_ZTYPE,
- "Z883": _SERIALIZE_ZMAP,
-}
-_DEFAULT_SERIALIZER = _SERIALIZE_ZTYPE
-
-
-def serialize(py_object):
- """Convert a Python object into the corresponding ZObject type.
- str -> Z6
- None -> Z21
- bool -> Z40
- iterable -> Typed List (Z881-generated type)
- ZPair -> Typed Pair (Z882-generated type)
- dict -> Typed Map (Z883-generated type)
- ZObject -> arbitrary ZObject
- """
- ZID = utils.get_python_type(py_object)
- serializer = _SERIALIZERS.get(ZID)
- if serializer is None:
- serializer = _DEFAULT_SERIALIZER
- return serializer(py_object)
diff --git a/executors/python3/test/__init__.py b/executors/python3/test/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/executors/python3/test/__init__.py
+++ /dev/null
diff --git a/executors/python3/test/test_executor.py b/executors/python3/test/test_executor.py
deleted file mode 100644
index 7ddbf40..0000000
--- a/executors/python3/test/test_executor.py
+++ /dev/null
@@ -1,184 +0,0 @@
-import io
-import json
-import os
-import re
-import sys
-import unittest
-from unittest.mock import patch
-
-# TODO (T322096): This is a kludge due to how env variables work in Blubber;
-# would be better if PYTHONPATH could be controlled directly.
-from . import utils as test_utils
-from .. import executor
-from .. import utils as src_utils
-
-
-_DATA_DIR = os.path.join(os.path.dirname(__file__), "test_data")
-
-
-def _read_test_json(file_name):
- with open(os.path.join(_DATA_DIR, file_name), "r") as inp:
- return json.load(inp)
-
-
-class ExecutorTest(unittest.TestCase):
- maxDiff = None
-
- def _run_test(self, zobject, expected_result):
- actual = executor.execute(zobject)
- self.assertEqual(
- test_utils.without_z1k1s(expected_result), test_utils.without_z1k1s(actual)
- )
- self.assertEqual(
- True,
- src_utils._is_zVoid(actual.get("Z22K2"))
- or src_utils._is_zMap(actual.get("Z22K2")),
- )
-
- def test_runs_function_call(self):
- function_call = _read_test_json("python3_add.json")
- expected = _read_test_json("add_expected.json")
- self._run_test(function_call, expected)
-
- def test_runs_function_call_with_generics(self):
- function_call = _read_test_json("python3_add_with_generics.json")
- expected = _read_test_json("add_expected.json")
- self._run_test(function_call, expected)
-
- def test_runs_lambda(self):
- function_call = _read_test_json("python3_add_lambda.json")
- expected = _read_test_json("add_expected.json")
- self._run_test(function_call, expected)
-
- def test_various_types(self):
- function_call = _read_test_json("python3_compound_type.json")
- expected = _read_test_json("compound_type_expected.json")
- self._run_test(function_call, expected)
-
- def test_various_types_generic(self):
- function_call = _read_test_json("python3_compound_type_generic.json")
- expected = _read_test_json("compound_type_expected.json")
- self._run_test(function_call, expected)
-
- def test_list_o_lists_o_strings_input(self):
- function_call = {
- "codeString": _read_test_json(
- "list_list_string_input_python3_implementation.json"
- )["Z6K1"],
- "functionName": "Z1000",
- "functionArguments": {"Z1000K1": _read_test_json("list_list_strings.json")},
- }
- expected = _read_test_json("result_envelope_template.json")
- expected["Z22K1"] = _read_test_json("string_in_lists.json")
- self._run_test(function_call, expected)
-
- def test_list_o_lists_o_strings_output(self):
- function_call = {
- "codeString": _read_test_json(
- "list_list_string_output_python3_implementation.json"
- )["Z6K1"],
- "functionName": "Z1000",
- "functionArguments": {"Z1000K1": _read_test_json("string_in_lists.json")},
- }
- expected = _read_test_json("result_envelope_template.json")
- expected["Z22K1"] = _read_test_json("list_list_strings.json")
- self._run_test(function_call, expected)
-
- def test_pair_string_pair_string_string_input(self):
- function_call = {
- "codeString": _read_test_json(
- "pair_string_pair_string_string_input_python3_implementation.json"
- )["Z6K1"],
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": _read_test_json("pair_string_pair_string_string.json")
- },
- }
- expected = _read_test_json("result_envelope_template.json")
- expected["Z22K1"] = _read_test_json("string_in_pairs.json")
- self._run_test(function_call, expected)
-
- def test_pair_string_pair_string_string_output(self):
- function_call = {
- "codeString": _read_test_json(
- "pair_string_pair_string_string_output_python3_implementation.json"
- )["Z6K1"],
- "functionName": "Z1000",
- "functionArguments": {"Z1000K1": _read_test_json("string_in_pairs.json")},
- }
- expected = _read_test_json("result_envelope_template.json")
- expected["Z22K1"] = _read_test_json("pair_string_pair_string_string.json")
- self._run_test(function_call, expected)
-
- def test_map_string_string(self):
- function_call = _read_test_json("map_string_string_Z7.json")
- function_call["functionArguments"]["Z1802K1"] = _read_test_json(
- "map_string_bool.json"
- )
- function_call["codeString"] = _read_test_json(
- "map_string_string_python3_implementation.json"
- )["Z6K1"]
- expected = _read_test_json("result_envelope_template.json")
- expected["Z22K1"] = _read_test_json("map_string_string.json")
- self._run_test(function_call, expected)
-
- def test_user_defined_input(self):
- function_call = _read_test_json("python3_user_defined_input.json")
- function_call["functionArguments"]["Z1000K1"] = _read_test_json(
- "user_defined_input_Z1000K1.json"
- )
- expected = _read_test_json("user_defined_input_expected.json")
- self._run_test(function_call, expected)
-
- def test_unserializable_type(self):
- function_call = _read_test_json("python3_unsupported_output.json")
- expected = _read_test_json("python3_unsupported_output_expected.json")
- self._run_test(function_call, expected)
-
- def test_no_function_name(self):
- function_call = _read_test_json("python3_no_function_name.json")
- expected = _read_test_json("no_function_name_expected.json")
- self._run_test(function_call, expected)
-
- def test_no_code_string(self):
- function_call = _read_test_json("python3_no_code_string.json")
- expected = _read_test_json("no_code_string_expected.json")
- self._run_test(function_call, expected)
-
-
-class MainTest(unittest.TestCase):
- def setUp(self):
- self._stdin = io.StringIO()
- self._stdout = io.StringIO()
-
- def test_main_add(self):
- function_call_full = _read_test_json("python3_add.json")
- function_call_string = json.dumps(function_call_full)
- expected = _read_test_json("add_expected.json")
- self._stdin.write(function_call_string + "\n")
- self._stdin.seek(0)
- executor.main(self._stdin, self._stdout)
- self._stdin.close()
- self._stdout.seek(0)
- self.assertEqual(
- test_utils.without_z1k1s(expected),
- test_utils.without_z1k1s(json.loads(self._stdout.read().strip())),
- )
-
- def test_main_syntax_failure(self):
- function_call_full = _read_test_json("python3_syntax_failure.json")
- function_call_string = json.dumps(function_call_full)
- expected = _read_test_json("python3_syntax_failure_expected.json")
- self._stdin.write(function_call_string + "\n")
- self._stdin.seek(0)
- executor.main(self._stdin, self._stdout)
- self._stdin.close()
- self._stdout.seek(0)
- self.assertEqual(
- test_utils.without_z1k1s(expected),
- test_utils.without_z1k1s(json.loads(self._stdout.read().strip())),
- )
-
-
-if __name__ == "__main__":
- unittest.main()
diff --git a/executors/python3/test/test_serialization.py b/executors/python3/test/test_serialization.py
deleted file mode 100644
index 604e362..0000000
--- a/executors/python3/test/test_serialization.py
+++ /dev/null
@@ -1,241 +0,0 @@
-import unittest
-
-# TODO (T322096): This is a kludge due to how env variables work in Blubber;
-# would be better if PYTHONPATH could be controlled directly.
-from .. import exceptions
-from .. import serialization
-from .. import utils
-from .. import ztypes
-from . import utils as test_utils
-
-
-_Z6 = {"Z1K1": "Z6", "Z6K1": "opiparo"}
-_Z881_Z1_INPUT = {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z1"},
- },
- "K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z40"},
- "Z40K1": {"Z1K1": "Z9", "Z9K1": "Z41"},
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z1"},
- },
- "K1": {"Z1K1": "Z6", "Z6K1": "tRue"},
- "K2": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z1"},
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z1"},
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z1"},
- },
- },
- },
- },
-}
-_Z21 = {"Z1K1": {"Z1K1": "Z9", "Z9K1": "Z21"}}
-_Z39 = {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z39"},
- "Z39K1": {"Z1K1": "Z6", "Z6K1": "Z1000K1"},
-}
-_ZTrue = {"Z1K1": {"Z1K1": "Z9", "Z9K1": "Z40"}, "Z40K1": {"Z1K1": "Z9", "Z9K1": "Z41"}}
-_ZFalse = {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z40"},
- "Z40K1": {"Z1K1": "Z9", "Z9K1": "Z42"},
-}
-_Z86 = {"Z1K1": {"Z1K1": "Z9", "Z9K1": "Z86"}, "Z86K1": {"Z1K1": "Z6", "Z6K1": "%"}}
-
-
-_Z6_DESERIALIZED = "opiparo"
-_Z39_DESERIALIZED = ztypes.ZObject(_Z39["Z1K1"], Z39K1="Z1000K1")
-_Z881_Z1_DESERIALIZED = [True, "tRue", []]
-_Z86_DESERIALIZED = ztypes.ZObject(_Z86["Z1K1"], Z86K1="%")
-_Z882_DESERIALIZED = ztypes.ZPair("pigs", "just pigs")
-_Z881_Z6_DESERIALIZED = ["horses", "regular ungulates"]
-
-
-_Z882_Type = {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z882"},
- "Z882K1": {"Z1K1": "Z9", "Z9K1": "Z6"},
- "Z882K2": {"Z1K1": "Z9", "Z9K1": "Z6"},
-}
-_Z881_Z6_Type = {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z6"},
-}
-
-
-_Z882 = {
- "Z1K1": _Z882_Type,
- "K1": {"Z1K1": "Z6", "Z6K1": "pigs"},
- "K2": {"Z1K1": "Z6", "Z6K1": "just pigs"},
-}
-_Z881_Z6 = {
- "Z1K1": _Z881_Z6_Type,
- "K1": {"Z1K1": "Z6", "Z6K1": "horses"},
- "K2": {
- "Z1K1": _Z881_Z6_Type,
- "K1": {"Z1K1": "Z6", "Z6K1": "regular ungulates"},
- "K2": {"Z1K1": _Z881_Z6_Type},
- },
-}
-_USER_DEFINED_TYPE = {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z4"},
- "Z4K1": {"Z1K1": "Z9", "Z9K1": "Z10101"},
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- },
- "K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- "Z3K1": {"Z1K1": "Z9", "Z9K1": "Z6"},
- "Z3K2": {"Z1K1": "Z6", "Z6K1": "Z10101K1"},
- "Z3K3": {"Z1K1": "Z9", "Z9K1": "Z333"},
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- },
- "K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- "Z3K1": {"Z1K1": "Z9", "Z9K1": "Z6"},
- "Z3K2": {"Z1K1": "Z6", "Z6K1": "Z10101K2"},
- "Z3K3": {"Z1K1": "Z9", "Z9K1": "Z333"},
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- },
- },
- },
- },
- "Z4K3": {"Z1K1": "Z9", "Z9K1": "Z222"},
-}
-_USER_DEFINED_DESERIALIZED = ztypes.ZObject(
- _USER_DEFINED_TYPE, Z10101K1="tRue", Z10101K2="trUe"
-)
-_USER_DEFINED_DESERIALIZED_NO_Z1K1 = ztypes.ZObject(Z10101K1="tRue", Z10101K2="trUe")
-_USER_DEFINED = {
- "Z1K1": _USER_DEFINED_TYPE,
- "Z10101K1": {"Z1K1": "Z6", "Z6K1": "tRue"},
- "Z10101K2": {"Z1K1": "Z6", "Z6K1": "trUe"},
-}
-
-
-class DeserializeTest(unittest.TestCase):
- maxDiff = None
-
- def test_deserializes_Z6(self):
- self.assertEqual(_Z6_DESERIALIZED, serialization.deserialize(_Z6))
-
- def test_deserializes_list_of_Z1(self):
- self.assertEqual(
- _Z881_Z1_DESERIALIZED, serialization.deserialize(_Z881_Z1_INPUT)
- )
-
- def test_deserializes_Z21(self):
- self.assertIsNone(serialization.deserialize(_Z21))
-
- def test_deserializes_Z39(self):
- self.assertEqual(_Z39_DESERIALIZED, serialization.deserialize(_Z39))
-
- def test_deserializes_Z40_Z41(self):
- self.assertEqual(True, serialization.deserialize(_ZTrue))
-
- def test_deserializes_Z40_Z42(self):
- self.assertEqual(False, serialization.deserialize(_ZFalse))
-
- def test_deserializes_Z86(self):
- self.assertEqual(_Z86_DESERIALIZED, serialization.deserialize(_Z86))
-
- def test_deserializes_Z881(self):
- self.assertEqual(_Z881_Z6_DESERIALIZED, serialization.deserialize(_Z881_Z6))
-
- def test_deserializes_Z882(self):
- self.assertEqual(_Z882_DESERIALIZED, serialization.deserialize(_Z882))
-
- def test_deserializes_user_defined(self):
- self.assertEqual(
- _USER_DEFINED_DESERIALIZED, serialization.deserialize(_USER_DEFINED)
- )
-
-
-class SerializeTest(unittest.TestCase):
- maxDiff = None
-
- def _run_test(self, expected, actual):
- self.assertEqual(
- test_utils.without_z1k1s(expected), test_utils.without_z1k1s(actual)
- )
-
- def test_serializes_Z6(self):
- self._run_test(_Z6, serialization.serialize(_Z6_DESERIALIZED))
-
- def test_serializes_list_of_Z1(self):
- self._run_test(
- _Z881_Z1_INPUT,
- serialization.serialize(_Z881_Z1_DESERIALIZED),
- )
-
- def test_serializes_Z21(self):
- self._run_test(_Z21, serialization.serialize(None))
-
- def test_serializes_Z40_Z41(self):
- self._run_test(_ZTrue, serialization.serialize(True))
-
- def test_serializes_Z40_Z42(self):
- self._run_test(_ZFalse, serialization.serialize(False))
-
- def test_serializes_Z882(self):
- self._run_test(_Z882, serialization.serialize(_Z882_DESERIALIZED))
-
- def test_serializes_Z881(self):
- self._run_test(_Z881_Z6, serialization.serialize(_Z881_Z6_DESERIALIZED))
-
- def test_serializes_user_defined(self):
- self._run_test(
- _USER_DEFINED,
- serialization.serialize(_USER_DEFINED_DESERIALIZED),
- )
-
- def test_serializes_user_defined_correct_type(self):
- self.assertEqual(
- _USER_DEFINED,
- serialization.serialize(_USER_DEFINED_DESERIALIZED),
- )
-
- def test_serializes_user_defined_as_Z1(self):
- self._run_test(
- _USER_DEFINED, serialization.serialize(_USER_DEFINED_DESERIALIZED)
- )
-
- def test_serializes_user_defined_no_Z1K1_as_Z1(self):
- expected_message = "Could not serialize input Python object: ZObject<Z1K1:None,Z10101K1:tRue,Z10101K2:trUe>"
- with self.assertRaises(exceptions.EvaluatorError) as exception_context:
- serialization.serialize(_USER_DEFINED_DESERIALIZED_NO_Z1K1)
- self.assertEqual(expected_message, exception_context.exception.args[0])
diff --git a/executors/python3/test/test_wikifunctions.py b/executors/python3/test/test_wikifunctions.py
deleted file mode 100644
index 6902086..0000000
--- a/executors/python3/test/test_wikifunctions.py
+++ /dev/null
@@ -1,56 +0,0 @@
-import io
-import json
-import re
-import threading
-import unittest
-
-# TODO (T322096): This is a kludge due to how env variables work in Blubber;
-# would be better if PYTHONPATH could be controlled directly.
-from .. import wikifunctions
-
-
-class WikifunctionsTest(unittest.TestCase):
- maxDiff = None
-
- def setUp(self):
- self._stdin = io.StringIO()
- self._stdout = io.StringIO()
-
- def test_call(self):
- results = []
-
- # Prepare stdin to be read during the function call.
- self._stdin.write(json.dumps({"Z1K1": "Z6", "Z6K1": "thread string cord"}))
- self._stdin.write("\n")
- self._stdin.write("\n")
- self._stdin.seek(0)
-
- # Call Wikifunctions.Call in a separate thread.
- def make_call():
- W = wikifunctions.Wikifunctions(self._stdin, self._stdout)
- results.append(W.Call("Z801", Z801K1=True))
-
- call_thread = threading.Thread(target=make_call)
- call_thread.start()
- call_thread.join()
-
- # Thread has now exited; read the stdout produced therein.
- self._stdout.seek(0)
- actual_stdout = self._stdout.read()
- self.assertTrue(actual_stdout.startswith("call "))
- serialized_function_call = re.sub(r"^call ", r"", actual_stdout)
- actual_function_call = json.loads(serialized_function_call)
- expected_function_call = {
- "Z1K1": "Z7",
- "Z7K1": "Z801",
- "Z801K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z40"},
- "Z40K1": {"Z1K1": "Z9", "Z9K1": "Z41"},
- },
- }
-
- # stdout should contain "call " + the expected function call.
- self.assertEqual(expected_function_call, actual_function_call)
-
- # stdin should have received the serialized string.
- self.assertEqual("thread string cord", results[0])
diff --git a/executors/python3/test/test_ztypes.py b/executors/python3/test/test_ztypes.py
deleted file mode 100644
index 59e101b..0000000
--- a/executors/python3/test/test_ztypes.py
+++ /dev/null
@@ -1,55 +0,0 @@
-import unittest
-
-# TODO (T322096): This is a kludge due to how env variables work in Blubber;
-# would be better if PYTHONPATH could be controlled directly.
-from .. import ztypes
-
-
-_USER_DEFINED_TYPE = {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z4"},
- "Z4K1": {"Z1K1": "Z9", "Z9K1": "Z10101"},
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- },
- "K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- "Z3K1": {"Z1K1": "Z9", "Z9K1": "Z6"},
- "Z3K2": {"Z1K1": "Z6", "Z6K1": "Z10101K1"},
- "Z3K3": {"Z1K1": "Z9", "Z9K1": "Z333"},
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- },
- "K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- "Z3K1": {"Z1K1": "Z9", "Z9K1": "Z6"},
- "Z3K2": {"Z1K1": "Z6", "Z6K1": "Z10101K2"},
- "Z3K3": {"Z1K1": "Z9", "Z9K1": "Z333"},
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {"Z1K1": "Z9", "Z9K1": "Z3"},
- },
- },
- },
- },
- "Z4K3": {"Z1K1": "Z9", "Z9K1": "Z222"},
-}
-_USER_DEFINED_DESERIALIZED = ztypes.ZObject(
- _USER_DEFINED_TYPE, Z10101K1="tRue", Z10101K2="trUe"
-)
-
-
-class ZTypesTest(unittest.TestCase):
- def test_keys_of_serialized_zobject(self):
- self.assertEquals(
- ["Z1K1", "Z10101K1", "Z10101K2"], list(_USER_DEFINED_DESERIALIZED.keys())
- )
diff --git a/executors/python3/test/utils.py b/executors/python3/test/utils.py
deleted file mode 100644
index bd448bb..0000000
--- a/executors/python3/test/utils.py
+++ /dev/null
@@ -1,9 +0,0 @@
-def without_z1k1s(zobject):
- new_object = {}
- for key, value in zobject.items():
- if key == "Z1K1":
- continue
- if isinstance(value, dict):
- value = without_z1k1s(value)
- new_object[key] = value
- return new_object
diff --git a/executors/python3/utils.py b/executors/python3/utils.py
deleted file mode 100644
index ba5c51d..0000000
--- a/executors/python3/utils.py
+++ /dev/null
@@ -1,305 +0,0 @@
-import sys
-from python3 import exceptions
-from python3 import ztypes
-
-
-# TODO (T282891): All _is_zwhatev functions should use function-schemata.
-def _is_zreference(Z9):
- try:
- return Z9.get("Z1K1") == "Z9" and isinstance(Z9.get("Z9K1"), str)
- except AttributeError:
- return False
-
-
-def _is_zfunction_call(Z7):
- try:
- return Z7.get("Z1K1", {}).get("Z9K1") == "Z7"
- except AttributeError:
- return False
-
-
-def _is_zfunction(Z8):
- try:
- return Z8.get("Z1K1", {}).get("Z9K1") == "Z8"
- except AttributeError:
- return False
-
-
-def _is_zError(Z5):
- try:
- return Z5.get("Z1K1", {}).get("Z9K1") == "Z5"
- except AttributeError:
- return False
-
-
-def _is_zMap(Z883):
- try:
- return Z883.get("Z1K1", {}).get("Z7K1", {}).get("Z9K1") == "Z883"
- except AttributeError:
- return False
-
-
-def _is_zVoid(Z24):
- try:
- return Z24.get("Z9K1") == "Z24"
- except AttributeError:
- return False
-
-
-def _z9_for(reference):
- return {"Z1K1": "Z9", "Z9K1": reference}
-
-
-def make_void():
- return _z9_for("Z24")
-
-
-def make_empty_zmap(key_type, value_type):
- """Create a new ZMap with the given key_type and value_type.
- At present, the key type of a ZMap can only be Z6 / String or Z39 / Key reference.
- TODO (T302015) When ZMap keys are extended beyond Z6/Z39, update accordingly
-
- Arguments:
- key_type: A Z9 instance in normal form
- value_type: A ZObject in normal form
- Returns:
- A Z883 / ZMap with no entries, in normal form
- """
- allowed_key_types = ["Z6", "Z39"]
- if key_type.get("Z9K1") not in allowed_key_types:
- sys.stderr.write("make_singleton_zmap called with invalid key_type")
- return None
- map_type = {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z883"},
- "Z883K1": key_type,
- "Z883K2": value_type,
- }
- # The map's K1 property is a list of pairs, and it's required to be present
- # even when empty
- list_type = {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z881"},
- "Z881K1": {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z882"},
- "Z882K1": key_type,
- "Z882K2": value_type,
- },
- }
- return {"Z1K1": map_type, "K1": {"Z1K1": list_type}}
-
-
-def set_zmap_value(zmap, key, value):
- """Ensures there is an entry for the given key / value in the given ZMap. If there is
- already an entry for the given key, overwrites the corresponding value. Otherwise,
- creates a new entry. N.B.: Modifies the value of the ZMap's K1 in place.
-
- TODO (T302015) When ZMap keys are extended beyond Z6/Z39, update accordingly
-
- Arguments:
- zmap: a Z883/Typed map, in normal form
- key: a Z6 or Z39 instance, in normal form
- value: a Z1/ZObject, in normal form
-
- Returns:
- the updated ZMap, in normal form
- """
- if zmap == None:
- sys.stderr.write("set_zmap_value called with undefined; please fix your caller")
- return None
-
- tail = zmap.get("K1")
- while True:
- if is_empty_zlist(tail):
- break
- entry = get_head(tail)
- if (
- entry.get("K1", {}).get("Z1K1") == "Z6"
- and key.get("Z1K1") == "Z6"
- and entry.get("K1", {}).get("Z6K1") == key.get("Z6K1")
- ) or (
- entry.get("K1", {}).get("Z1K1") == "Z39"
- and key.get("Z1K1") == "Z39"
- and entry.get("K1", {}).get("Z39K1", {}).get("Z9K1")
- == key.get("Z39K1", {}).get("Z9K1")
- ):
- entry["K2"] = value
- return zmap
- tail = get_tail(tail)
-
- # The key isn't present in the map, so add an entry for it
- key_type = zmap.get("Z1K1", {}).get("Z883K1")
- value_type = zmap.get("Z1K1", {}).get("Z883K2")
- pair_type = {
- "Z1K1": {"Z1K1": "Z9", "Z9K1": "Z7"},
- "Z7K1": {"Z1K1": "Z9", "Z9K1": "Z882"},
- "Z883K1": key_type,
- "Z883K2": value_type,
- }
- tail["K1"] = {"Z1K1": pair_type, "K1": key, "K2": value}
- list_type = tail.get("Z1K1")
- tail["K2"] = {"Z1K1": list_type}
- return zmap
-
-
-def make_mapped_result_envelope(result, metadata):
- """Creates a map-based Z22 containing result and metadata. metadata is normally a Z883 / Map.
- If metadata is a Z5 / Error object, we place it in a new ZMap, as the value of an entry
- with key "errors". This is to support our transition from the older basic Z22s to map-based
- Z22s.
-
- Args:
- result: Z22K1 of the resulting Z22
- metadata: Z22K2 of the resulting Z22 - either a Z883 / Map or a Z5 / Error
- Returns:
- Z22 encapsulating the arguments
- """
- if _is_zError(metadata):
- key_type = {"Z1K1": "Z9", "Z9K1": "Z6"}
- value_type = {"Z1K1": "Z9", "Z9K1": "Z1"}
- key = {"Z1K1": "Z6", "Z6K1": "errors"}
- zmap = make_empty_zmap(key_type, value_type)
- zmap = set_zmap_value(zmap, key, metadata)
- else:
- zmap = metadata
- return {
- "Z1K1": _z9_for("Z22"),
- "Z22K1": make_void() if result is None else result,
- "Z22K2": make_void() if zmap is None else zmap,
- }
-
-
-def frozendict(dictionary):
- """Creates an immutable representation of a dictionary."""
- if not isinstance(dictionary, dict):
- return dictionary
- result = []
- for key, value in dictionary.items():
- result.append((key, frozendict(value)))
- return frozenset(result)
-
-
-def _get_head(zlist):
- return zlist.get("K1")
-
-
-def _get_tail(zlist):
- return zlist.get("K2")
-
-
-def is_empty_zlist(z_list):
- """Returns True iff input Typed List is empty."""
- return _get_head(z_list) is None
-
-
-def convert_zlist_to_list(zlist):
- """Turns a Typed List into a Python list.
-
- Arguments:
- zlist: a Typed List
-
- Returns:
- a Python list containing all elements of the input Typed List
- """
- tail = zlist
- result = []
- while True:
- if is_empty_zlist(tail):
- break
- result.append(_get_head(tail))
- tail = _get_tail(tail)
- return result
-
-
-def get_list_type(the_list):
- Z1K1s = set()
- for i, element in enumerate(the_list):
- if i == 0:
- first_Z1K1 = element["Z1K1"]
- # TODO (T293915): Use ZObjectKeyFactory or similar to create string representations.
- Z1K1s.add(frozendict(element["Z1K1"]))
- if len(Z1K1s) == 1:
- head_type = first_Z1K1
- else:
- head_type = _z9_for("Z1")
- return head_type
-
-
-def convert_list_to_zlist(the_list, head_type):
- """Turns a Python iterable into a Typed List.
-
- Arguments:
- the_list: an iterable of serialized ZObjects
-
- Returns:
- a Type List corresponding to the input list
- """
- list_type = {"Z1K1": _z9_for("Z7"), "Z7K1": _z9_for("Z881"), "Z881K1": head_type}
-
- head_key = "K1"
- tail_key = "K2"
-
- def create_tail():
- return {"Z1K1": list_type}
-
- result = create_tail()
- tail = result
- for element in the_list:
- tail[head_key] = element
- tail[tail_key] = create_tail()
- tail = tail[tail_key]
- return result
-
-
-def get_zid(Z4):
- if _is_zfunction(Z4):
- return get_zid(Z4.get("Z8K5", {}))
- if _is_zreference(Z4):
- return Z4["Z9K1"]
- if _is_zfunction_call(Z4):
- Z7K1 = Z4.get("Z7K1", {})
- return get_zid(Z7K1)
- if is_ztype(Z4):
- return get_zid(Z4["Z4K1"])
- if isinstance(Z4, str):
- # If Z4 is a string, original object was a Z6 or a Z9.
- return Z4
- # I guess this wasn't a very good ZObject.
- raise exceptions.EvaluatorError("Could not determine type for {}".format(Z4))
-
-
-def get_zobject_type(ZObject):
- """Determine the ZID corresponding to the type of a ZObject."""
- return get_zid(ZObject.get("Z1K1"))
-
-
-def is_ztype(Z4):
- try:
- return Z4.get("Z1K1", {}).get("Z9K1") == "Z4"
- except AttributeError:
- return False
-
-
-def get_python_type(py_object):
- """Infer the type of a Python object and try to find the corresponding ZID."""
- if isinstance(py_object, ztypes.ZObject):
- return "DEFAULT"
- if isinstance(py_object, str):
- return "Z6"
- if isinstance(py_object, bool):
- return "Z40"
- if isinstance(py_object, ztypes.ZPair):
- return "Z882"
- if isinstance(py_object, dict):
- return "Z883"
- # This check crucially must succeed the isinstance(py_object, ZObject) check
- # because ZObjects are sort of iterable.
- try:
- iterator = iter(py_object)
- except TypeError:
- pass
- else:
- return "Z881"
- if py_object is None:
- return "Z21"
diff --git a/executors/python3/wikifunctions.py b/executors/python3/wikifunctions.py
deleted file mode 100644
index 412ea9b..0000000
--- a/executors/python3/wikifunctions.py
+++ /dev/null
@@ -1,30 +0,0 @@
-"""Module that handles reentrant websocket calls to orchestrator.
-
-This needs a lot of work. stdin needs to be captured somewhere in order to
-route different results to the appropriate calls. Threaded approach with
-a central handler for stdin could help. Probably also need asyncio here.
-"""
-
-
-import json
-import sys
-from python3 import serialization
-
-
-class Wikifunctions:
- def __init__(self, stdin, stdout):
- self._stdin = stdin
- self._stdout = stdout
-
- def Call(self, function_zid, **kwargs):
- Z7 = {"Z1K1": "Z7", "Z7K1": function_zid}
- for key, value in kwargs.items():
- Z7[key] = serialization.serialize(value)
- self._stdout.write("call " + json.dumps(Z7) + "\n")
- # flush() is crucial to ensure that the call be made promptly.
- self._stdout.flush()
- while True:
- for line in self._stdin:
- if not line.strip():
- continue
- return serialization.deserialize(json.loads(line))
diff --git a/executors/python3/ztypes.py b/executors/python3/ztypes.py
deleted file mode 100644
index 53b6b73..0000000
--- a/executors/python3/ztypes.py
+++ /dev/null
@@ -1,110 +0,0 @@
-from python3 import serialization
-
-
-_z9 = lambda ZID: {"Z1K1": "Z9", "Z9K1": ZID}
-
-
-class ZErrorType:
- pass
-
-
-class ZError:
- pass
-
-
-class ZObject:
- def __init__(self, original_Z1K1=None, **kwargs):
- self._Z1K1 = original_Z1K1
- self._keys = []
- for key, value in kwargs.items():
- self._keys.append(key)
- setattr(self, key, value)
- self._keys.sort()
-
- def keys(self):
- if self._Z1K1 is not None:
- yield "Z1K1"
- for key in self._keys:
- yield key
-
- def items(self):
- for key in self.keys():
- yield (key, getattr(self, key))
-
- @property
- def Z1K1(self):
- return self._Z1K1
-
- def __getitem__(self, key):
- return getattr(self, key, None)
-
- def __repr__(self):
- return "ZObject<{}>".format(
- ",".join(
- [
- "{}:{}".format(attribute, getattr(self, attribute))
- for attribute in ["Z1K1"] + sorted(self._keys)
- ]
- )
- )
-
- def __str__(self):
- return repr(self)
-
- def __eq__(self, other_zobject):
- if isinstance(other_zobject, type(self)):
- if self._keys != other_zobject._keys:
- return False
- for key in self._keys:
- if getattr(self, key) != getattr(other_zobject, key):
- return False
- return True
- return False
-
-
-class ZPair:
- def __init__(self, K1, K2, original_Z1K1=None):
- if original_Z1K1 is None:
- original_Z1K1 = {
- "Z1K1": _z9("Z7"),
- "Z7K1": _z9("Z882"),
- "Z882K1": serialization.serialize(K1)["Z1K1"],
- "Z882K2": serialization.serialize(K2)["Z1K1"],
- }
- self._Z1K1 = original_Z1K1
- self._K1 = K1
- self._K2 = K2
-
- @property
- def K1(self):
- return self._K1
-
- @property
- def K2(self):
- return self._K2
-
- @property
- def Z1K1(self):
- return self._Z1K1
-
- def items(self):
- for key in ["K1", "K2"]:
- yield (key, getattr(self, key))
-
- def __eq__(self, other_zpair):
- if isinstance(other_zpair, type(self)):
- return self.K1 == other_zpair.K1 and self.K2 == other_zpair.K2
- return False
-
- def __repr__(self):
- return "ZPair<{}>".format(
- ",".join(
- [
- "{}:{}".format(attribute, getattr(self, attribute))
- for attribute in ["Z1K1", "K1", "K2"]
- ]
- )
- )
-
- def __str__(self):
- return repr(self)
diff --git a/lib/api-util.js b/lib/api-util.js
deleted file mode 100644
index 0326795..0000000
--- a/lib/api-util.js
+++ /dev/null
@@ -1,126 +0,0 @@
-'use strict';
-
-const BBPromise = require( 'bluebird' );
-const sUtil = require( './util' );
-const Template = require( 'swagger-router' ).Template;
-const HTTPError = sUtil.HTTPError;
-
-/**
- * Calls the MW API with the supplied query as its body
- *
- * @param {!Object} req the incoming request object
- * @param {?Object} query an object with all the query parameters for the MW API
- * @param {?Object} headers additional headers to pass to the MW API
- * @return {!Promise} a promise resolving as the response object from the MW API
- */
-function mwApiGet( req, query, headers ) {
-
- const app = req.app;
- query = Object.assign( {
- format: 'json',
- formatversion: 2
- }, query );
-
- const request = app.mwapi_tpl.expand( {
- request: {
- params: { domain: req.params.domain },
- headers: req.headers,
- query
- }
- } );
- Object.assign( request.headers, headers );
-
- return req.issueRequest( request ).then( ( response ) => {
- if ( response.status < 200 || response.status > 399 ) {
- // there was an error when calling the upstream service, propagate that
- return BBPromise.reject( new HTTPError( {
- status: response.status,
- type: 'api_error',
- title: 'MW API error',
- detail: response.body
- } ) );
- }
- return response;
- } );
-
-}
-
-/**
- * Calls the REST API with the supplied domain, path and request parameters
- *
- * @param {!Object} req the incoming request object
- * @param {?string} path the REST API path to contact without the leading slash
- * @param {?Object} [restReq={}] the object containing the REST request details
- * @param {?string} [restReq.method=get] the request method
- * @param {?Object} [restReq.query={}] the query string to send, if any
- * @param {?Object} [restReq.headers={}] the request headers to send
- * @param {?Object} [restReq.body=null] the body of the request, if any
- * @return {!Promise} a promise resolving as the response object from the REST API
- *
- */
-function restApiGet( req, path, restReq ) {
-
- const app = req.app;
- if ( path.constructor === Object ) {
- restReq = path;
- path = undefined;
- }
- restReq = restReq || {};
- restReq.method = restReq.method || 'get';
- restReq.query = restReq.query || {};
- restReq.headers = restReq.headers || {};
- restReq.params = restReq.params || {};
- restReq.params.path = path || restReq.params.path;
- restReq.params.domain = restReq.params.domain || req.params.domain;
- if ( !restReq.params.path || !restReq.params.domain ) {
- return BBPromise.reject( new HTTPError( {
- status: 500,
- type: 'internal_error',
- title: 'Invalid internal call',
- detail: 'domain and path need to be defined for the REST API call'
- } ) );
- }
- restReq.params.path = restReq.params.path[ 0 ] === '/' ?
- restReq.params.path.slice( 1 ) : restReq.params.path;
-
- return req.issueRequest( app.restbase_tpl.expand( { request: restReq } ) );
-
-}
-
-/**
- * Sets up the request templates for MW and RESTBase API requests
- *
- * @param {!Application} app the application object
- */
-function setupApiTemplates( app ) {
-
- // set up the MW API request template
- if ( !app.conf.mwapi_req ) {
- app.conf.mwapi_req = {
- method: 'post',
- uri: 'http://{{domain}}/w/api.php',
- headers: '{{request.headers}}',
- body: '{{ default(request.query, {}) }}'
- };
- }
- app.mwapi_tpl = new Template( app.conf.mwapi_req );
-
- // set up the RESTBase request template
- if ( !app.conf.restbase_req ) {
- app.conf.restbase_req = {
- method: '{{request.method}}',
- uri: 'http://{{domain}}/api/rest_v1/{+path}',
- query: '{{ default(request.query, {}) }}',
- headers: '{{request.headers}}',
- body: '{{request.body}}'
- };
- }
- app.restbase_tpl = new Template( app.conf.restbase_req );
-
-}
-
-module.exports = {
- mwApiGet,
- restApiGet,
- setupApiTemplates
-};
diff --git a/lib/fetch.js b/lib/fetch.js
deleted file mode 100644
index 3b47d87..0000000
--- a/lib/fetch.js
+++ /dev/null
@@ -1,16 +0,0 @@
-// Wrapper around node-fetch that sets a custom user-agent header and sets
-// Bluebird as the Promise implementation.
-// See https://github.com/node-fetch/node-fetch/issues/591#issuecomment-904170999
-'use strict';
-
-const fetch = require( 'node-fetch' );
-const Bluebird = require( 'bluebird' );
-const version = require( '../package.json' ).version;
-
-fetch.Promise = Bluebird;
-
-module.exports = ( url, args = {} ) => {
- args.headers = args.headers || {};
- args.headers[ 'user-agent' ] = 'wikifunctions-function-orchestrator/' + version;
- return fetch( url, args );
-};
diff --git a/lib/swagger-ui.js b/lib/swagger-ui.js
deleted file mode 100644
index 3c315f6..0000000
--- a/lib/swagger-ui.js
+++ /dev/null
@@ -1,104 +0,0 @@
-'use strict';
-
-const BBPromise = require( 'bluebird' );
-const fs = BBPromise.promisifyAll( require( 'fs' ) );
-const path = require( 'path' );
-const HTTPError = require( '../lib/util.js' ).HTTPError;
-
-// Swagger-ui-dist helpfully exporting the absolute path of its dist directory
-const docRoot = `${require( 'swagger-ui-dist' ).getAbsoluteFSPath()}/`;
-const DOC_CSP = "default-src 'none'; " +
- "script-src 'self' 'unsafe-inline'; connect-src *; " +
- "style-src 'self' 'unsafe-inline'; img-src 'self' data:; font-src 'self';";
-
-function processRequest( app, req, res ) {
-
- const reqPath = req.query.path || '/index.html';
- const filePath = path.join( docRoot, reqPath );
-
- // Disallow relative paths.
- // Test relies on docRoot ending on a slash.
- if ( filePath.slice( 0, Math.max( 0, docRoot.length ) ) !== docRoot ) {
- throw new HTTPError( {
- status: 404,
- type: 'not_found',
- title: 'File not found',
- detail: `${reqPath} could not be found.`
- } );
- }
-
- return fs.readFileAsync( filePath )
- .then( ( body ) => {
- if ( reqPath === '/index.html' ) {
- const css = `
- /* Removes Swagger's image from the header bar */
- .topbar-wrapper .link img {
- display: none;
- }
- /* Adds the application's name in the header bar */
- .topbar-wrapper .link::after {
- content: "${app.info.name}";
- }
- /* Removes input field and explore button from header bar */
- .swagger-ui .topbar .download-url-wrapper {
- display: none;
- }
- /* Modifies the font in the information area */
- .swagger-ui .info li, .swagger-ui .info p, .swagger-ui .info table, .swagger-ui .info a {
- font-size: 16px;
- line-height: 1.4em;
- }
- /* Removes authorize button and section */
- .scheme-container {
- display: none
- }
- `;
- body = body.toString()
- .replace( /((?:src|href)=['"])/g, '$1?doc&path=' )
- // Some self-promotion
- .replace( /<\/style>/, `${css}\n </style>` )
- .replace( /<title>[^<]*<\/title>/, `<title>${app.info.name}</title>` )
- // Replace the default url with ours, switch off validation &
- // limit the size of documents to apply syntax highlighting to
- .replace( /dom_id: '#swagger-ui'/, 'dom_id: "#swagger-ui", ' +
- 'docExpansion: "none", defaultModelsExpandDepth: -1, validatorUrl: null, displayRequestDuration: true' )
- .replace( /"https:\/\/petstore.swagger.io\/v2\/swagger.json"/,
- '"/?spec"' );
- }
-
- let contentType = 'text/html';
- if ( /\.js$/.test( reqPath ) ) {
- contentType = 'text/javascript';
- body = body.toString()
- .replace( /underscore-min\.map/, '?doc&path=lib/underscore-min.map' )
- .replace( /sourceMappingURL=/, 'sourceMappingURL=/?doc&path=' );
- } else if ( /\.png$/.test( reqPath ) ) {
- contentType = 'image/png';
- } else if ( /\.map$/.test( reqPath ) ) {
- contentType = 'application/json';
- } else if ( /\.ttf$/.test( reqPath ) ) {
- contentType = 'application/x-font-ttf';
- } else if ( /\.css$/.test( reqPath ) ) {
- contentType = 'text/css';
- body = body.toString()
- .replace( /\.\.\/(images|fonts)\//g, '?doc&path=$1/' )
- .replace( /sourceMappingURL=/, 'sourceMappingURL=/?doc&path=' );
- }
-
- res.header( 'content-type', contentType );
- res.header( 'content-security-policy', DOC_CSP );
- res.header( 'x-content-security-policy', DOC_CSP );
- res.header( 'x-webkit-csp', DOC_CSP );
- res.send( body.toString() );
- } )
- .catch( { code: 'ENOENT' }, () => {
- res.status( 404 )
- .type( 'not_found' )
- .send( 'not found' );
- } );
-
-}
-
-module.exports = {
- processRequest
-};
diff --git a/lib/util.js b/lib/util.js
deleted file mode 100644
index 96854c8..0000000
--- a/lib/util.js
+++ /dev/null
@@ -1,288 +0,0 @@
-'use strict';
-
-const BBPromise = require( 'bluebird' );
-const preq = require( 'preq' );
-const express = require( 'express' );
-const uuidv1 = require( 'uuid/v1' );
-const bunyan = require( 'bunyan' );
-
-/**
- * Error instance wrapping HTTP error responses
- */
-class HTTPError extends Error {
-
- constructor( response ) {
- super();
- Error.captureStackTrace( this, HTTPError );
-
- if ( response.constructor !== Object ) {
- // just assume this is just the error message
- response = {
- status: 500,
- type: 'internal_error',
- title: 'InternalError',
- detail: response
- };
- }
-
- this.name = this.constructor.name;
- this.message = `${response.status}`;
- if ( response.type ) {
- this.message += `: ${response.type}`;
- }
-
- Object.assign( this, response );
- }
-}
-
-/**
- * Generates an object suitable for logging out of a request object
- *
- * @param {!Request} req the request
- * @param {?RegExp} whitelistRE the RegExp used to filter headers
- * @return {!Object} an object containing the key components of the request
- */
-function reqForLog( req, whitelistRE ) {
-
- const ret = {
- url: req.originalUrl,
- headers: {},
- method: req.method,
- params: req.params,
- query: req.query,
- body: req.body,
- remoteAddress: req.connection.remoteAddress,
- remotePort: req.connection.remotePort
- };
-
- if ( req.headers && whitelistRE ) {
- Object.keys( req.headers ).forEach( ( hdr ) => {
- if ( whitelistRE.test( hdr ) ) {
- ret.headers[ hdr ] = req.headers[ hdr ];
- }
- } );
- }
-
- return ret;
-
-}
-
-/**
- * Serialises an error object in a form suitable for logging.
- *
- * @param {!Error} err error to serialise
- * @return {!Object} the serialised version of the error
- */
-function errForLog( err ) {
-
- const ret = bunyan.stdSerializers.err( err );
- ret.status = err.status;
- ret.type = err.type;
- ret.detail = err.detail;
-
- // log the stack trace only for 500 errors
- if ( Number.parseInt( ret.status, 10 ) !== 500 ) {
- ret.stack = undefined;
- }
-
- return ret;
-
-}
-
-/**
- * Wraps all of the given router's handler functions with
- * promised try blocks so as to allow catching all errors,
- * regardless of whether a handler returns/uses promises
- * or not.
- *
- * @param {!Object} route the object containing the router and path to bind it to
- * @param {!Application} app the application object
- */
-function wrapRouteHandlers( route, app ) {
-
- route.router.stack.forEach( ( routerLayer ) => {
- const path = ( route.path + routerLayer.route.path.slice( 1 ) )
- .replace( /\/:/g, '/--' )
- .replace( /^\//, '' )
- .replace( /[/?]+$/, '' );
- routerLayer.route.stack.forEach( ( layer ) => {
- const origHandler = layer.handle;
- const metric = app.metrics.makeMetric( {
- type: 'Histogram',
- name: 'router',
- prometheus: {
- name: 'express_router_request_duration_seconds',
- help: 'request duration handled by router in seconds',
- staticLabels: app.metrics.getServiceLabel(),
- buckets: [ 0.01, 0.05, 0.1, 0.3, 1 ]
- },
- labels: {
- names: [ 'path', 'method', 'status' ],
- omitLabelNames: true
- }
- } );
- layer.handle = ( req, res, next ) => {
- const startTime = Date.now();
- BBPromise.try( () => origHandler( req, res, next ) )
- .catch( next )
- .finally( () => {
- let statusCode = parseInt( res.statusCode, 10 ) || 500;
- if ( statusCode < 100 || statusCode > 599 ) {
- statusCode = 500;
- }
- metric.endTiming( startTime, [ path || 'root', req.method, statusCode ] );
- } );
- };
- } );
- } );
-
-}
-
-/**
- * Generates an error handler for the given applications and installs it.
- *
- * @param {!Application} app the application object to add the handler to
- */
-function setErrorHandler( app ) {
-
- app.use( ( err, req, res, next ) => { // eslint-disable-line no-unused-vars
- let errObj;
- // ensure this is an HTTPError object
- if ( err.constructor === HTTPError ) {
- errObj = err;
- } else if ( err instanceof Error ) {
- // is this an HTTPError defined elsewhere? (preq)
- if ( err.constructor.name === 'HTTPError' ) {
- const o = { status: err.status };
- if ( err.body && err.body.constructor === Object ) {
- Object.keys( err.body ).forEach( ( key ) => {
- o[ key ] = err.body[ key ];
- } );
- } else {
- o.detail = err.body;
- }
- o.message = err.message;
- errObj = new HTTPError( o );
- } else {
- // this is a standard error, convert it
- errObj = new HTTPError( {
- status: 500,
- type: 'internal_error',
- title: err.name,
- detail: err.detail || err.message,
- stack: err.stack
- } );
- }
- } else if ( err.constructor === Object ) {
- // this is a regular object, suppose it's a response
- errObj = new HTTPError( err );
- } else {
- // just assume this is just the error message
- errObj = new HTTPError( {
- status: 500,
- type: 'internal_error',
- title: 'InternalError',
- detail: err
- } );
- }
- // ensure some important error fields are present
- errObj.status = errObj.status || 500;
- errObj.type = errObj.type || 'internal_error';
- // add the offending URI and method as well
- errObj.method = errObj.method || req.method;
- errObj.uri = errObj.uri || req.url;
- // some set 'message' or 'description' instead of 'detail'
- errObj.detail = errObj.detail || errObj.message || errObj.description || '';
- // adjust the log level based on the status code
- let level = 'error';
- if ( Number.parseInt( errObj.status, 10 ) < 400 ) {
- level = 'trace';
- } else if ( Number.parseInt( errObj.status, 10 ) < 500 ) {
- level = 'info';
- }
- // log the error
- const component = ( errObj.component ? errObj.component : errObj.status );
- ( req.logger || app.logger ).log( `${level}/${component}`, errForLog( errObj ) );
- // let through only non-sensitive info
- const respBody = {
- status: errObj.status,
- type: errObj.type,
- title: errObj.title,
- detail: errObj.detail,
- method: errObj.method,
- uri: errObj.uri
- };
- res.status( errObj.status ).json( respBody );
- } );
-
-}
-
-/**
- * Creates a new router with some default options.
- *
- * @param {?Object} [opts] additional options to pass to express.Router()
- * @return {!Router} a new router object
- */
-function createRouter( opts ) {
-
- const options = {
- mergeParams: true
- };
-
- if ( opts && opts.constructor === Object ) {
- Object.assign( options, opts );
- }
-
- return new express.Router( options );
-
-}
-
-/**
- * Adds logger to the request and logs it.
- *
- * @param {!*} req request object
- * @param {!Application} app application object
- */
-function initAndLogRequest( req, app ) {
- req.headers = req.headers || {};
- req.headers[ 'x-request-id' ] = req.headers[ 'x-request-id' ] || uuidv1();
- req.logger = app.logger.child( {
- request_id: req.headers[ 'x-request-id' ],
- request: reqForLog( req, app.conf.log_header_whitelist )
- } );
- req.context = { reqId: req.headers[ 'x-request-id' ] };
- req.issueRequest = ( request ) => {
- if ( !( request.constructor === Object ) ) {
- request = { uri: request };
- }
- if ( request.url ) {
- request.uri = request.url;
- delete request.url;
- }
- if ( !request.uri ) {
- return BBPromise.reject( new HTTPError( {
- status: 500,
- type: 'internal_error',
- title: 'No request to issue',
- detail: 'No request has been specified'
- } ) );
- }
- request.method = request.method || 'get';
- request.headers = request.headers || {};
- Object.assign( request.headers, {
- 'user-agent': app.conf.user_agent,
- 'x-request-id': req.context.reqId
- } );
- req.logger.log( 'trace/req', { msg: 'Outgoing request', out_request: request } );
- return preq( request );
- };
- req.logger.log( 'trace/req', { msg: 'Incoming request' } );
-}
-
-module.exports = {
- HTTPError,
- initAndLogRequest,
- wrapRouteHandlers,
- setErrorHandler,
- router: createRouter
-};
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index cebd0f9..0000000
--- a/package-lock.json
+++ /dev/null
@@ -1,11774 +0,0 @@
-{
- "name": "function-evaluator",
- "version": "0.0.1",
- "lockfileVersion": 2,
- "requires": true,
- "packages": {
- "": {
- "name": "function-evaluator",
- "version": "0.0.1",
- "license": "MIT",
- "dependencies": {
- "body-parser": "^1.19.0",
- "bunyan": "^1.8.15",
- "compression": "^1.7.4",
- "domino": "^2.1.6",
- "express": "^4.17.1",
- "function-schemata": "file:./executors/javascript/function-schemata",
- "http-shutdown": "^1.2.2",
- "js-yaml": "^3.14.1",
- "pidusage": "3.0.0",
- "preq": "^0.5.14",
- "service-runner": "^3.1.0",
- "swagger-router": "^0.7.4",
- "swagger-ui-dist": "^3.51.1",
- "uuid": "^3.4.0",
- "ws": "^8.7.0"
- },
- "devDependencies": {
- "ajv": "^6.5.4",
- "bluebird": "^3.7.2",
- "chai": "^4.3.4",
- "eslint": "8.31.0",
- "eslint-config-wikimedia": "0.22.1",
- "eslint-plugin-unicorn": "40.1.0",
- "eslint-plugin-yml": "0.13.0",
- "extend": "^3.0.2",
- "mocha": "9.2.2",
- "mocha-lcov-reporter": "^1.3.0",
- "mocha.parallel": "^0.15.6",
- "node-fetch": "2.6.7",
- "nyc": "^14.1.1",
- "openapi-schema-validator": "^3.0.3",
- "sinon": "10.0.0"
- }
- },
- "executors/javascript/function-schemata": {
- "license": "MIT",
- "dependencies": {
- "ajv": "8.6.2",
- "avro-js": "1.11.1",
- "benchmark": "2.1.4",
- "semver": "^7.3.8",
- "yaml": "1.10.0"
- },
- "devDependencies": {
- "eslint": "8.31.0",
- "eslint-config-wikimedia": "0.22.1",
- "eslint-plugin-unicorn": "^41.0.0",
- "eslint-plugin-yml": "^0.14.0",
- "nyc": "14.1.1",
- "qunit": "2.18.2"
- }
- },
- "executors/javascript/function-schemata/node_modules/ajv": {
- "version": "8.6.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz",
- "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "executors/javascript/function-schemata/node_modules/eslint-plugin-unicorn": {
- "version": "41.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-41.0.1.tgz",
- "integrity": "sha512-gF5vo2dIj0YdNMQ/IMegiBkQdQ22GBFFVpdkJP+0og3w7XD4ypea0xQVRv6iofkLVR2w0phAdikcnU01ybd4Ow==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.15.7",
- "ci-info": "^3.3.0",
- "clean-regexp": "^1.0.0",
- "eslint-utils": "^3.0.0",
- "esquery": "^1.4.0",
- "indent-string": "^4.0.0",
- "is-builtin-module": "^3.1.0",
- "lodash": "^4.17.21",
- "pluralize": "^8.0.0",
- "read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.5",
- "strip-indent": "^3.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
- },
- "peerDependencies": {
- "eslint": ">=8.8.0"
- }
- },
- "executors/javascript/function-schemata/node_modules/eslint-plugin-yml": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.14.0.tgz",
- "integrity": "sha512-+0+bBV/07txENbxfrHF9olGoLCHez64vmnOmjWOoLwmXOwfdaSRleBSPIi4nWQs7WwX8lm/fSLadOjbVEcsXQQ==",
- "dev": true,
- "dependencies": {
- "debug": "^4.3.2",
- "lodash": "^4.17.21",
- "natural-compare": "^1.4.0",
- "yaml-eslint-parser": "^0.5.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ota-meshi"
- },
- "peerDependencies": {
- "eslint": ">=6.0.0"
- }
- },
- "node_modules/@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "dependencies": {
- "@babel/highlight": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/generator": {
- "version": "7.19.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz",
- "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.19.4",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
- "dev": true,
- "dependencies": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "dependencies": {
- "@babel/types": "^7.18.6"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
- "dev": true,
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/highlight/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/@babel/highlight/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/@babel/highlight/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/highlight/node_modules/supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz",
- "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==",
- "dev": true,
- "bin": {
- "parser": "bin/babel-parser.js"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz",
- "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.4",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.19.4",
- "@babel/types": "^7.19.4",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/traverse/node_modules/globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@babel/types": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz",
- "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==",
- "dev": true,
- "dependencies": {
- "@babel/helper-string-parser": "^7.19.4",
- "@babel/helper-validator-identifier": "^7.19.1",
- "to-fast-properties": "^2.0.0"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@es-joy/jsdoccomment": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz",
- "integrity": "sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==",
- "dev": true,
- "dependencies": {
- "comment-parser": "1.3.0",
- "esquery": "^1.4.0",
- "jsdoc-type-pratt-parser": "~2.2.3"
- },
- "engines": {
- "node": "^12 || ^14 || ^16 || ^17"
- }
- },
- "node_modules/@eslint/eslintrc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
- "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
- "dev": true,
- "dependencies": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.4.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/@eslint/eslintrc/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/@eslint/eslintrc/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true,
- "engines": {
- "node": ">=12.22"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/nzakas"
- }
- },
- "node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true
- },
- "node_modules/@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "dependencies": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true,
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true
- },
- "node_modules/@jridgewell/trace-mapping": {
- "version": "0.3.16",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz",
- "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==",
- "dev": true,
- "dependencies": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- }
- },
- "node_modules/@mdn/browser-compat-data": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz",
- "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==",
- "dev": true
- },
- "node_modules/@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true,
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "dependencies": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/@sinonjs/commons": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
- "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
- "dev": true,
- "dependencies": {
- "type-detect": "4.0.8"
- }
- },
- "node_modules/@sinonjs/fake-timers": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz",
- "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^1.7.0"
- }
- },
- "node_modules/@sinonjs/samsam": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz",
- "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^1.6.0",
- "lodash.get": "^4.4.2",
- "type-detect": "^4.0.8"
- }
- },
- "node_modules/@sinonjs/text-encoding": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
- "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
- "dev": true
- },
- "node_modules/@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
- "dev": true
- },
- "node_modules/@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
- "dev": true
- },
- "node_modules/accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dependencies": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "peerDependencies": {
- "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dependencies": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "funding": {
- "type": "github",
- "url": "https://github.com/sponsors/epoberezkin"
- }
- },
- "node_modules/ajv/node_modules/json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "node_modules/ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dependencies": {
- "color-convert": "^2.0.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/chalk/ansi-styles?sponsor=1"
- }
- },
- "node_modules/anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "dependencies": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/append-transform": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
- "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
- "dev": true,
- "dependencies": {
- "default-require-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
- "dev": true
- },
- "node_modules/argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "dependencies": {
- "sprintf-js": "~1.0.2"
- }
- },
- "node_modules/array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "node_modules/asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
- },
- "node_modules/asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "dependencies": {
- "safer-buffer": "~2.1.0"
- }
- },
- "node_modules/assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/ast-metadata-inferer": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
- "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
- "dev": true,
- "dependencies": {
- "@mdn/browser-compat-data": "^3.3.14"
- }
- },
- "node_modules/ast-metadata-inferer/node_modules/@mdn/browser-compat-data": {
- "version": "3.3.14",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
- "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
- "dev": true
- },
- "node_modules/async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw=="
- },
- "node_modules/asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "node_modules/avro-js": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.1.tgz",
- "integrity": "sha512-poQW99RWRrO4JoThqnJrvfqmLuP4Wav/DCBd8PQttY9MfNfTiIGFYxd4tgADI+wIU2JPiiW0aLWQglZLAOjXeg==",
- "dependencies": {
- "underscore": "^1.13.2"
- }
- },
- "node_modules/aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/aws4": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
- },
- "node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "devOptional": true
- },
- "node_modules/bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
- "dependencies": {
- "tweetnacl": "^0.14.3"
- }
- },
- "node_modules/benchmark": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz",
- "integrity": "sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==",
- "dependencies": {
- "lodash": "^4.17.4",
- "platform": "^1.3.3"
- }
- },
- "node_modules/binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "optional": true,
- "dependencies": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "node_modules/bintrees": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz",
- "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw=="
- },
- "node_modules/bl": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
- "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
- "dependencies": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
- },
- "node_modules/body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "dependencies": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/body-parser/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/body-parser/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
- },
- "node_modules/brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "devOptional": true,
- "dependencies": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "node_modules/braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "dependencies": {
- "fill-range": "^7.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
- "dev": true
- },
- "node_modules/browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
- },
- "bin": {
- "browserslist": "cli.js"
- },
- "engines": {
- "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- }
- },
- "node_modules/builtin-modules": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
- "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
- "dev": true,
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/bunyan": {
- "version": "1.8.15",
- "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz",
- "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==",
- "engines": [
- "node >=0.10.0"
- ],
- "bin": {
- "bunyan": "bin/bunyan"
- },
- "optionalDependencies": {
- "dtrace-provider": "~0.8",
- "moment": "^2.19.3",
- "mv": "~2",
- "safe-json-stringify": "~1"
- }
- },
- "node_modules/bunyan-syslog-udp": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/bunyan-syslog-udp/-/bunyan-syslog-udp-0.2.0.tgz",
- "integrity": "sha512-tY6iaw+iYbCjlsAgAyO4CeA7Usnj5VndygMfd2PcHK++626oMoHANcdsH5tq5VxRPsbk9M1fbuk0a5pX9axV2w=="
- },
- "node_modules/bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/caching-transform": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz",
- "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==",
- "dev": true,
- "dependencies": {
- "hasha": "^3.0.0",
- "make-dir": "^2.0.0",
- "package-hash": "^3.0.0",
- "write-file-atomic": "^2.4.2"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/caniuse-lite": {
- "version": "1.0.30001419",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz",
- "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
- }
- ]
- },
- "node_modules/caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
- },
- "node_modules/chai": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
- "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==",
- "dev": true,
- "dependencies": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^3.0.1",
- "get-func-name": "^2.0.0",
- "loupe": "^2.3.1",
- "pathval": "^1.1.1",
- "type-detect": "^4.0.5"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/chalk?sponsor=1"
- }
- },
- "node_modules/check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "funding": [
- {
- "type": "individual",
- "url": "https://paulmillr.com/funding/"
- }
- ],
- "dependencies": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "engines": {
- "node": ">= 8.10.0"
- },
- "optionalDependencies": {
- "fsevents": "~2.3.2"
- }
- },
- "node_modules/chokidar/node_modules/glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.1"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
- },
- "node_modules/ci-info": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz",
- "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==",
- "dev": true
- },
- "node_modules/clarinet": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/clarinet/-/clarinet-0.11.0.tgz",
- "integrity": "sha512-6hgoCgDgdyEtrXsk1tMomUl+S6wnslv2F1muNTOuhQemOhauR+Q0FtBdrj9k+qyIDLm0TVW0QMZ10aeWwRDgIA==",
- "engines": {
- "chrome": ">=16.0.912",
- "firefox": ">=0.8.0",
- "node": ">=0.3.6"
- }
- },
- "node_modules/clean-regexp": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
- "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==",
- "dev": true,
- "dependencies": {
- "escape-string-regexp": "^1.0.5"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
- "dev": true,
- "dependencies": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
- }
- },
- "node_modules/cliui/node_modules/ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cliui/node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/color-convert": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
- "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dependencies": {
- "color-name": "~1.1.4"
- },
- "engines": {
- "node": ">=7.0.0"
- }
- },
- "node_modules/color-name": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
- "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
- },
- "node_modules/colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
- "engines": {
- "node": ">=0.1.90"
- }
- },
- "node_modules/combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "dependencies": {
- "delayed-stream": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "dev": true,
- "engines": {
- "node": ">= 10"
- }
- },
- "node_modules/comment-parser": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz",
- "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==",
- "dev": true,
- "engines": {
- "node": ">= 12.0.0"
- }
- },
- "node_modules/commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
- "node_modules/compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "dependencies": {
- "mime-db": ">= 1.43.0 < 2"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/compression": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
- "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
- "dependencies": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
- "debug": "2.6.9",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/compression/node_modules/bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/compression/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/compression/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "devOptional": true
- },
- "node_modules/content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dependencies": {
- "safe-buffer": "5.2.1"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/content-disposition/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true
- },
- "node_modules/cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "node_modules/core-js": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz",
- "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==",
- "dev": true,
- "hasInstallScript": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/core-js"
- }
- },
- "node_modules/core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "node_modules/cp-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz",
- "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "make-dir": "^2.0.0",
- "nested-error-stacks": "^2.0.0",
- "pify": "^4.0.1",
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "dependencies": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true,
- "bin": {
- "cssesc": "bin/cssesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "dependencies": {
- "assert-plus": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/deep-eql": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
- "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
- "dev": true,
- "dependencies": {
- "type-detect": "^4.0.0"
- },
- "engines": {
- "node": ">=0.12"
- }
- },
- "node_modules/deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
- },
- "node_modules/default-require-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
- "integrity": "sha512-B0n2zDIXpzLzKeoEozorDSa1cHc1t0NjmxP0zuAxbizNU2MBqYJJKYXrrFdKuQliojXynrxgd7l4ahfg/+aA5g==",
- "dev": true,
- "dependencies": {
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "engines": {
- "node": ">= 0.8",
- "npm": "1.2.8000 || >= 1.4.16"
- }
- },
- "node_modules/diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/dnscache": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/dnscache/-/dnscache-1.0.2.tgz",
- "integrity": "sha512-2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ==",
- "dependencies": {
- "asap": "^2.0.6",
- "lodash.clone": "^4.5.0"
- }
- },
- "node_modules/doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "dependencies": {
- "esutils": "^2.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/dom-storage": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz",
- "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/domino": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz",
- "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ=="
- },
- "node_modules/dtrace-provider": {
- "version": "0.8.8",
- "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz",
- "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==",
- "hasInstallScript": true,
- "optional": true,
- "dependencies": {
- "nan": "^2.14.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "dependencies": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "node_modules/ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "node_modules/electron-to-chromium": {
- "version": "1.4.281",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.281.tgz",
- "integrity": "sha512-yer0w5wCYdFoZytfmbNhwiGI/3cW06+RV7E23ln4490DVMxs7PvYpbsrSmAiBn/V6gode8wvJlST2YfWgvzWIg==",
- "dev": true
- },
- "node_modules/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
- },
- "node_modules/encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "dependencies": {
- "is-arrayish": "^0.2.1"
- }
- },
- "node_modules/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
- },
- "node_modules/escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "node_modules/escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/eslint": {
- "version": "8.31.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz",
- "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==",
- "dev": true,
- "dependencies": {
- "@eslint/eslintrc": "^1.4.1",
- "@humanwhocodes/config-array": "^0.11.8",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "regexpp": "^3.2.0",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0"
- },
- "bin": {
- "eslint": "bin/eslint.js"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/eslint-config-wikimedia": {
- "version": "0.22.1",
- "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.22.1.tgz",
- "integrity": "sha512-TtN+gWJrcW0i1sEu7vPE1tHpEilrMUuTxP6UK97Amvva/KDV9/tvRUifGhw0q5uBswp+HWgF12p8rq68hZqMbA==",
- "dev": true,
- "dependencies": {
- "eslint": "^8.6.0",
- "eslint-plugin-compat": "^4.0.2",
- "eslint-plugin-es": "^4.1.0",
- "eslint-plugin-jsdoc": "^37.7.1",
- "eslint-plugin-json-es": "^1.5.4",
- "eslint-plugin-mediawiki": "^0.3.0",
- "eslint-plugin-mocha": "^9.0.0",
- "eslint-plugin-no-jquery": "^2.7.0",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-qunit": "^7.2.0",
- "eslint-plugin-unicorn": "^40.1.0",
- "eslint-plugin-vue": "^8.4.1",
- "eslint-plugin-wdio": "^7.4.2",
- "eslint-plugin-yml": "^0.13.0"
- }
- },
- "node_modules/eslint-plugin-compat": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz",
- "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==",
- "dev": true,
- "dependencies": {
- "@mdn/browser-compat-data": "^4.1.5",
- "ast-metadata-inferer": "^0.7.0",
- "browserslist": "^4.16.8",
- "caniuse-lite": "^1.0.30001304",
- "core-js": "^3.16.2",
- "find-up": "^5.0.0",
- "lodash.memoize": "4.1.2",
- "semver": "7.3.5"
- },
- "engines": {
- "node": ">=9.x"
- },
- "peerDependencies": {
- "eslint": "^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/eslint-plugin-compat/node_modules/semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/eslint-plugin-es": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz",
- "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==",
- "dev": true,
- "dependencies": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=4.19.1"
- }
- },
- "node_modules/eslint-plugin-es/node_modules/eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^1.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
- "node_modules/eslint-plugin-es/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/eslint-plugin-jsdoc": {
- "version": "37.9.7",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz",
- "integrity": "sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==",
- "dev": true,
- "dependencies": {
- "@es-joy/jsdoccomment": "~0.20.1",
- "comment-parser": "1.3.0",
- "debug": "^4.3.3",
- "escape-string-regexp": "^4.0.0",
- "esquery": "^1.4.0",
- "regextras": "^0.8.0",
- "semver": "^7.3.5",
- "spdx-expression-parse": "^3.0.1"
- },
- "engines": {
- "node": "^12 || ^14 || ^16 || ^17"
- },
- "peerDependencies": {
- "eslint": "^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint-plugin-json-es": {
- "version": "1.5.7",
- "resolved": "https://registry.npmjs.org/eslint-plugin-json-es/-/eslint-plugin-json-es-1.5.7.tgz",
- "integrity": "sha512-ehBHcCcJo4iViYx6vp3T+SmwzLIlVDzZNoVxN/txZIiPwDQ26mnYaN5iJ3imqN4l1b8z6rbxEH2kB9XDGxeU/w==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.1"
- },
- "peerDependencies": {
- "eslint": ">= 7"
- }
- },
- "node_modules/eslint-plugin-mediawiki": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.3.0.tgz",
- "integrity": "sha512-Lhyj2PSkhDzYSc1PNbURysY/WoqvY0brw558ZInT3erzf5KUlro18MTKFdV+nlht475ZgnsfHsgfg6Ut2w1SVg==",
- "dev": true,
- "dependencies": {
- "eslint-plugin-vue": "^7.20.0",
- "upath": "^2.0.1"
- },
- "peerDependencies": {
- "eslint": ">=5.0.0"
- }
- },
- "node_modules/eslint-plugin-mediawiki/node_modules/acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
- "dev": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/eslint-plugin-mediawiki/node_modules/eslint-plugin-vue": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz",
- "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==",
- "dev": true,
- "dependencies": {
- "eslint-utils": "^2.1.0",
- "natural-compare": "^1.4.0",
- "semver": "^6.3.0",
- "vue-eslint-parser": "^7.10.0"
- },
- "engines": {
- "node": ">=8.10"
- },
- "peerDependencies": {
- "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/eslint-plugin-mediawiki/node_modules/eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- },
- "engines": {
- "node": ">=8.0.0"
- }
- },
- "node_modules/eslint-plugin-mediawiki/node_modules/eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^1.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
- "node_modules/eslint-plugin-mediawiki/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/eslint-plugin-mediawiki/node_modules/espree": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
- "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
- "dev": true,
- "dependencies": {
- "acorn": "^7.1.1",
- "acorn-jsx": "^5.2.0",
- "eslint-visitor-keys": "^1.1.0"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/eslint-plugin-mediawiki/node_modules/estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/eslint-plugin-mediawiki/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-plugin-mediawiki/node_modules/vue-eslint-parser": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz",
- "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "eslint-scope": "^5.1.1",
- "eslint-visitor-keys": "^1.1.0",
- "espree": "^6.2.1",
- "esquery": "^1.4.0",
- "lodash": "^4.17.21",
- "semver": "^6.3.0"
- },
- "engines": {
- "node": ">=8.10"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=5.0.0"
- }
- },
- "node_modules/eslint-plugin-mocha": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz",
- "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==",
- "dev": true,
- "dependencies": {
- "eslint-utils": "^3.0.0",
- "ramda": "^0.27.1"
- },
- "engines": {
- "node": ">=12.0.0"
- },
- "peerDependencies": {
- "eslint": ">=7.0.0"
- }
- },
- "node_modules/eslint-plugin-no-jquery": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz",
- "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==",
- "dev": true,
- "peerDependencies": {
- "eslint": ">=2.3.0"
- }
- },
- "node_modules/eslint-plugin-node": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
- "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
- "dev": true,
- "dependencies": {
- "eslint-plugin-es": "^3.0.0",
- "eslint-utils": "^2.0.0",
- "ignore": "^5.1.1",
- "minimatch": "^3.0.4",
- "resolve": "^1.10.1",
- "semver": "^6.1.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "peerDependencies": {
- "eslint": ">=5.16.0"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/eslint-plugin-es": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
- "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
- "dev": true,
- "dependencies": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=4.19.1"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^1.1.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/eslint-plugin-node/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/eslint-plugin-qunit": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.1.tgz",
- "integrity": "sha512-L1yutkLqCgr70ZmMAbBKPvUOUwhKryZ0RaJKOzw72Bmn8no3JNBL9hhbX2aTvfZqYM/wLXIT0nICZiGrV4xVJw==",
- "dev": true,
- "dependencies": {
- "eslint-utils": "^3.0.0",
- "requireindex": "^1.2.0"
- },
- "engines": {
- "node": "12.x || 14.x || >=16.0.0"
- }
- },
- "node_modules/eslint-plugin-unicorn": {
- "version": "40.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-40.1.0.tgz",
- "integrity": "sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig==",
- "dev": true,
- "dependencies": {
- "@babel/helper-validator-identifier": "^7.15.7",
- "ci-info": "^3.3.0",
- "clean-regexp": "^1.0.0",
- "eslint-utils": "^3.0.0",
- "esquery": "^1.4.0",
- "indent-string": "^4.0.0",
- "is-builtin-module": "^3.1.0",
- "lodash": "^4.17.21",
- "pluralize": "^8.0.0",
- "read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.5",
- "strip-indent": "^3.0.0"
- },
- "engines": {
- "node": ">=12"
- },
- "funding": {
- "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1"
- },
- "peerDependencies": {
- "eslint": ">=7.32.0"
- }
- },
- "node_modules/eslint-plugin-vue": {
- "version": "8.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
- "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
- "dev": true,
- "dependencies": {
- "eslint-utils": "^3.0.0",
- "natural-compare": "^1.4.0",
- "nth-check": "^2.0.1",
- "postcss-selector-parser": "^6.0.9",
- "semver": "^7.3.5",
- "vue-eslint-parser": "^8.0.1"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "peerDependencies": {
- "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0"
- }
- },
- "node_modules/eslint-plugin-wdio": {
- "version": "7.21.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.21.0.tgz",
- "integrity": "sha512-JPBUHGNZTMzo/+tDM/E+Sos44mE2P7B3/03lPUXrbfuhJfqN/1GyxslHwORqXbbpZl6e5reoQQhVOAemELxgrQ==",
- "dev": true,
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/eslint-plugin-yml": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.13.0.tgz",
- "integrity": "sha512-rZvdnhe28jIbgSIZo3qYqkl9hKslyTDfMwqIGDzz873gxghzBw0yeFG+P7sMfOkFfpqwJzZy3IKe2cIiCp4FrA==",
- "dev": true,
- "dependencies": {
- "debug": "^4.3.2",
- "lodash": "^4.17.21",
- "natural-compare": "^1.4.0",
- "yaml-eslint-parser": "^0.5.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ota-meshi"
- },
- "peerDependencies": {
- "eslint": ">=6.0.0"
- }
- },
- "node_modules/eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
- "dev": true,
- "dependencies": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "engines": {
- "node": "^10.0.0 || ^12.0.0 || >= 14.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=5"
- }
- },
- "node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
- "dev": true,
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/eslint/node_modules/@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
- "dev": true,
- "dependencies": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.5"
- },
- "engines": {
- "node": ">=10.10.0"
- }
- },
- "node_modules/eslint/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/eslint/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/eslint/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/espree": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
- "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
- "dev": true,
- "dependencies": {
- "acorn": "^8.8.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://opencollective.com/eslint"
- }
- },
- "node_modules/esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
- "bin": {
- "esparse": "bin/esparse.js",
- "esvalidate": "bin/esvalidate.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.1.0"
- },
- "engines": {
- "node": ">=0.10"
- }
- },
- "node_modules/esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "dependencies": {
- "estraverse": "^5.2.0"
- },
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true,
- "engines": {
- "node": ">=4.0"
- }
- },
- "node_modules/esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "dependencies": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "engines": {
- "node": ">= 0.10.0"
- }
- },
- "node_modules/express/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/express/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/express/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "node_modules/extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
- "engines": [
- "node >=0.6.0"
- ]
- },
- "node_modules/fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "node_modules/fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "node_modules/fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "node_modules/fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
- "dev": true,
- "dependencies": {
- "reusify": "^1.0.4"
- }
- },
- "node_modules/file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "dependencies": {
- "flat-cache": "^3.0.4"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "optional": true
- },
- "node_modules/fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "dependencies": {
- "to-regex-range": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "dependencies": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/finalhandler/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/finalhandler/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/find-cache-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
- "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
- "dev": true,
- "dependencies": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "dependencies": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true,
- "bin": {
- "flat": "cli.js"
- }
- },
- "node_modules/flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "dev": true,
- "dependencies": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- },
- "engines": {
- "node": "^10.12.0 || >=12.0.0"
- }
- },
- "node_modules/flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
- },
- "node_modules/foreground-child": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
- "integrity": "sha512-3TOY+4TKV0Ml83PXJQY+JFQaHNV38lzQDIzzXYg1kWdBLenGgoZhAs0CKgzI31vi2pWEpQMq/Yi4bpKwCPkw7g==",
- "dev": true,
- "dependencies": {
- "cross-spawn": "^4",
- "signal-exit": "^3.0.0"
- }
- },
- "node_modules/foreground-child/node_modules/cross-spawn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
- "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==",
- "dev": true,
- "dependencies": {
- "lru-cache": "^4.0.1",
- "which": "^1.2.9"
- }
- },
- "node_modules/foreground-child/node_modules/lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dev": true,
- "dependencies": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "node_modules/foreground-child/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/foreground-child/node_modules/yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
- "dev": true
- },
- "node_modules/forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "dependencies": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- },
- "engines": {
- "node": ">= 0.12"
- }
- },
- "node_modules/forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/fs-minipass": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
- "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
- "dependencies": {
- "minipass": "^2.6.0"
- }
- },
- "node_modules/fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "node_modules/fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "hasInstallScript": true,
- "optional": true,
- "os": [
- "darwin"
- ],
- "engines": {
- "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
- }
- },
- "node_modules/function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "node_modules/function-schemata": {
- "resolved": "executors/javascript/function-schemata",
- "link": true
- },
- "node_modules/gelf-stream": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/gelf-stream/-/gelf-stream-1.1.1.tgz",
- "integrity": "sha512-kCzCfI6DJ8+aaDhwMcsNm2l6CsBj6y4Is6CCxH2W9sYnZGcXg9WmJ/iZMoJVO6uTwTRL7dbIioAS8lCuGUXSFA==",
- "dependencies": {
- "gelfling": "^0.3.0"
- }
- },
- "node_modules/gelfling": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/gelfling/-/gelfling-0.3.1.tgz",
- "integrity": "sha512-vli3D2RYpLW6XhryNrv7HMjFNbj+ks/CCVDjokxOtZ+p6QYRadj8Zc0ps+LolSsh/I97XO0OduP/ShOej08clA=="
- },
- "node_modules/get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
- },
- "node_modules/get-func-name": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "dependencies": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "dependencies": {
- "assert-plus": "^1.0.0"
- }
- },
- "node_modules/glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "dependencies": {
- "is-glob": "^4.0.3"
- },
- "engines": {
- "node": ">=10.13.0"
- }
- },
- "node_modules/globals": {
- "version": "13.19.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
- "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
- "dev": true,
- "dependencies": {
- "type-fest": "^0.20.2"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/globalyzer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
- "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
- "dev": true
- },
- "node_modules/globrex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
- "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
- "dev": true
- },
- "node_modules/graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "dev": true
- },
- "node_modules/grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
- "dev": true
- },
- "node_modules/growl": {
- "version": "1.10.5",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
- "dev": true,
- "engines": {
- "node": ">=4.x"
- }
- },
- "node_modules/har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "deprecated": "this library is no longer supported",
- "dependencies": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "dependencies": {
- "function-bind": "^1.1.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/has-flag": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
- "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/hasha": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz",
- "integrity": "sha512-w0Kz8lJFBoyaurBiNrIvxPqr/gJ6fOfSkpAPOepN3oECqGJag37xPbOv57izi/KP8auHgNYxn5fXtAb+1LsJ6w==",
- "dev": true,
- "dependencies": {
- "is-stream": "^1.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/hat": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz",
- "integrity": "sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true,
- "bin": {
- "he": "bin/he"
- }
- },
- "node_modules/heapdump": {
- "version": "0.3.15",
- "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.15.tgz",
- "integrity": "sha512-n8aSFscI9r3gfhOcAECAtXFaQ1uy4QSke6bnaL+iymYZ/dWs9cqDqHM+rALfsHUwukUbxsdlECZ0pKmJdQ/4OA==",
- "hasInstallScript": true,
- "optional": true,
- "dependencies": {
- "nan": "^2.13.2"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "node_modules/hot-shots": {
- "version": "6.8.7",
- "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-6.8.7.tgz",
- "integrity": "sha512-XH8iezBSZgVw2jegu96pUfF1Zv0VZ/iXjb7L5yE3F7mn7/bdhf4qeniXjO0wQWeefe433rhOsazNKLxM+XMI9w==",
- "engines": {
- "node": ">=6.0.0"
- },
- "optionalDependencies": {
- "unix-dgram": "2.0.x"
- }
- },
- "node_modules/html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "node_modules/http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dependencies": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/http-shutdown": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz",
- "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw==",
- "engines": {
- "iojs": ">= 1.0.0",
- "node": ">= 0.12.0"
- }
- },
- "node_modules/http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
- "dependencies": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- },
- "engines": {
- "node": ">=0.8",
- "npm": ">=1.3.7"
- }
- },
- "node_modules/iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dependencies": {
- "safer-buffer": ">= 2.1.2 < 3"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
- "dev": true,
- "engines": {
- "node": ">= 4"
- }
- },
- "node_modules/import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
- "dependencies": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true,
- "engines": {
- "node": ">=0.8.19"
- }
- },
- "node_modules/indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "devOptional": true,
- "dependencies": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "node_modules/inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "node_modules/ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "node_modules/is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "dependencies": {
- "binary-extensions": "^2.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-builtin-module": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
- "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
- "dev": true,
- "dependencies": {
- "builtin-modules": "^3.3.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/is-core-module": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
- "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
- "dev": true,
- "dependencies": {
- "has": "^1.0.3"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/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": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "dependencies": {
- "is-extglob": "^2.1.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true,
- "engines": {
- "node": ">=0.12.0"
- }
- },
- "node_modules/is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
- },
- "node_modules/is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
- "node_modules/isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "node_modules/isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
- },
- "node_modules/istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-hook": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
- "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
- "dev": true,
- "dependencies": {
- "append-transform": "^1.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-instrument": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
- "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
- "dev": true,
- "dependencies": {
- "@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"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-instrument/node_modules/semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true,
- "bin": {
- "semver": "bin/semver.js"
- }
- },
- "node_modules/istanbul-lib-report": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
- "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
- "dev": true,
- "dependencies": {
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "supports-color": "^6.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/istanbul-lib-report/node_modules/supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
- "dev": true,
- "dependencies": {
- "has-flag": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-source-maps": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
- "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
- "dev": true,
- "dependencies": {
- "debug": "^4.1.1",
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "rimraf": "^2.6.3",
- "source-map": "^0.6.1"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/istanbul-lib-source-maps/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/istanbul-reports": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
- "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
- "dev": true,
- "dependencies": {
- "html-escaper": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/js-sdsl": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
- "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
- "dev": true,
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/js-sdsl"
- }
- },
- "node_modules/js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "node_modules/js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "dependencies": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
- },
- "node_modules/jsdoc-type-pratt-parser": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz",
- "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==",
- "dev": true,
- "engines": {
- "node": ">=12.0.0"
- }
- },
- "node_modules/jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "dev": true,
- "bin": {
- "jsesc": "bin/jsesc"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/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",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
- },
- "node_modules/json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "node_modules/json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
- },
- "node_modules/json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- },
- "node_modules/json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
- },
- "node_modules/json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
- "node_modules/jsprim": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
- "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "dependencies": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- },
- "engines": {
- "node": ">=0.6.0"
- }
- },
- "node_modules/just-extend": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
- "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
- "dev": true
- },
- "node_modules/kad-fs": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/kad-fs/-/kad-fs-0.0.4.tgz",
- "integrity": "sha512-VlLY7MuXy+3Tlqn1NJNgNkta6BRposNsJhqqcLv/M5e/rGBAETU33DhlPwV6/RBZKGzylQFkeYaKaoYin+mGZw==",
- "deprecated": "This package is no longer maintained.",
- "dependencies": {
- "readable-stream": "^2.0.4"
- }
- },
- "node_modules/kad-localstorage": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/kad-localstorage/-/kad-localstorage-0.0.7.tgz",
- "integrity": "sha512-3BEFBPa9cbPvW7WvZSTQHy6dSgw7ob7yTqT+eORWrxm4f4fE26BUVorg36KRbg/W+YWEnippuM68ybFyF3heiA==",
- "dependencies": {
- "dom-storage": "^2.0.1"
- }
- },
- "node_modules/kad-memstore": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/kad-memstore/-/kad-memstore-0.0.1.tgz",
- "integrity": "sha512-fwGvRXWjaSzMed8iQHkZH41wvaoq+3tIhuIbkqBBYFuuJtWoDWqgCYTADGPqLyaLX4Ct8aP5NtAxCaxk4cfcCg==",
- "deprecated": "This package is no longer maintained.",
- "dependencies": {
- "readable-stream": "^2.0.5"
- }
- },
- "node_modules/levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/limitation": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/limitation/-/limitation-0.2.3.tgz",
- "integrity": "sha512-IpIBG7WniPI1Og0HYxlo8JRD2E2pExwuol7hjobcNZSYBBxAamPJdV91Q47uw5/KiUKA+We8a33sh6vD1PQ+Yw==",
- "dependencies": {
- "bluebird": "^3.3.1",
- "readable-stream": "^2.0.5",
- "wikimedia-kad-fork": "^1.3.6"
- }
- },
- "node_modules/lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "node_modules/load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/load-json-file/node_modules/parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "dev": true,
- "dependencies": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/load-json-file/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "dependencies": {
- "p-locate": "^5.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "node_modules/lodash.clone": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz",
- "integrity": "sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg=="
- },
- "node_modules/lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
- },
- "node_modules/lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
- "dev": true
- },
- "node_modules/lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "dev": true
- },
- "node_modules/lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "dev": true
- },
- "node_modules/lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
- },
- "node_modules/log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "dependencies": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/loupe": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
- "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
- "dev": true,
- "dependencies": {
- "get-func-name": "^2.0.0"
- }
- },
- "node_modules/lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "dependencies": {
- "yallist": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "dependencies": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/make-dir/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
- "node_modules/merge-source-map": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
- "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
- "dev": true,
- "dependencies": {
- "source-map": "^0.6.1"
- }
- },
- "node_modules/methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "bin": {
- "mime": "cli.js"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dependencies": {
- "mime-db": "1.52.0"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "devOptional": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
- "dependencies": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "node_modules/minipass/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- },
- "node_modules/minizlib": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
- "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
- "dependencies": {
- "minipass": "^2.9.0"
- }
- },
- "node_modules/mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "dependencies": {
- "minimist": "^1.2.6"
- },
- "bin": {
- "mkdirp": "bin/cmd.js"
- }
- },
- "node_modules/mocha": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
- "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
- "dev": true,
- "dependencies": {
- "@ungap/promise-all-settled": "1.1.2",
- "ansi-colors": "4.1.1",
- "browser-stdout": "1.3.1",
- "chokidar": "3.5.3",
- "debug": "4.3.3",
- "diff": "5.0.0",
- "escape-string-regexp": "4.0.0",
- "find-up": "5.0.0",
- "glob": "7.2.0",
- "growl": "1.10.5",
- "he": "1.2.0",
- "js-yaml": "4.1.0",
- "log-symbols": "4.1.0",
- "minimatch": "4.2.1",
- "ms": "2.1.3",
- "nanoid": "3.3.1",
- "serialize-javascript": "6.0.0",
- "strip-json-comments": "3.1.1",
- "supports-color": "8.1.1",
- "which": "2.0.2",
- "workerpool": "6.2.0",
- "yargs": "16.2.0",
- "yargs-parser": "20.2.4",
- "yargs-unparser": "2.0.0"
- },
- "bin": {
- "_mocha": "bin/_mocha",
- "mocha": "bin/mocha"
- },
- "engines": {
- "node": ">= 12.0.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/mochajs"
- }
- },
- "node_modules/mocha-lcov-reporter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz",
- "integrity": "sha512-/5zI2tW4lq/ft8MGpYQ1nIH6yePPtIzdGeUEwFMKfMRdLfAQ1QW2c68eEJop32tNdN5srHa/E2TzB+erm3YMYA==",
- "dev": true,
- "engines": {
- "node": ">= 0.6.0"
- }
- },
- "node_modules/mocha.parallel": {
- "version": "0.15.6",
- "resolved": "https://registry.npmjs.org/mocha.parallel/-/mocha.parallel-0.15.6.tgz",
- "integrity": "sha512-pWph+QieKGjk7cHY2hB78wyKJDOQLyOMDuBLQLrFL7riJb8qbQBlCY3XztFHv0D1d4I1gCpiwFNjd4LhVOXPew==",
- "dev": true,
- "dependencies": {
- "bluebird": "^2.9.34",
- "semaphore": "^1.0.5"
- },
- "peerDependencies": {
- "mocha": ">=2.2.5"
- }
- },
- "node_modules/mocha.parallel/node_modules/bluebird": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
- "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==",
- "dev": true
- },
- "node_modules/mocha/node_modules/argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "node_modules/mocha/node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/mocha/node_modules/debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "dependencies": {
- "ms": "2.1.2"
- },
- "engines": {
- "node": ">=6.0"
- },
- "peerDependenciesMeta": {
- "supports-color": {
- "optional": true
- }
- }
- },
- "node_modules/mocha/node_modules/debug/node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/mocha/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "node_modules/mocha/node_modules/escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/mocha/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mocha/node_modules/js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "dependencies": {
- "argparse": "^2.0.1"
- },
- "bin": {
- "js-yaml": "bin/js-yaml.js"
- }
- },
- "node_modules/mocha/node_modules/minimatch": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
- "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
- "dev": true,
- "dependencies": {
- "brace-expansion": "^1.1.7"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mocha/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "node_modules/mocha/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/mocha/node_modules/supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/supports-color?sponsor=1"
- }
- },
- "node_modules/mocha/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/mocha/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mocha/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/mocha/node_modules/yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
- "optional": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "node_modules/msgpack5": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/msgpack5/-/msgpack5-3.6.1.tgz",
- "integrity": "sha512-VoY2AaoowHZLLKyEb5FRzuhdSzXn5quGjcMKJOJHJPxp9baYZx5t6jiHUhp5aNRlqqlt+5GXQGovMLNKsrm1hg==",
- "dependencies": {
- "bl": "^1.2.1",
- "inherits": "^2.0.3",
- "readable-stream": "^2.3.3",
- "safe-buffer": "^5.1.1"
- }
- },
- "node_modules/mv": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
- "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
- "optional": true,
- "dependencies": {
- "mkdirp": "~0.5.1",
- "ncp": "~2.0.0",
- "rimraf": "~2.4.0"
- },
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/mv/node_modules/glob": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
- "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
- "optional": true,
- "dependencies": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/mv/node_modules/rimraf": {
- "version": "2.4.5",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
- "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
- "optional": true,
- "dependencies": {
- "glob": "^6.0.1"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/nan": {
- "version": "2.17.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
- "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
- "optional": true
- },
- "node_modules/nanoid": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
- "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
- "dev": true,
- "bin": {
- "nanoid": "bin/nanoid.cjs"
- },
- "engines": {
- "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
- }
- },
- "node_modules/natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "node_modules/ncp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
- "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
- "optional": true,
- "bin": {
- "ncp": "bin/ncp"
- }
- },
- "node_modules/negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/nested-error-stacks": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz",
- "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==",
- "dev": true
- },
- "node_modules/nise": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz",
- "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^1.7.0",
- "@sinonjs/fake-timers": "^6.0.0",
- "@sinonjs/text-encoding": "^0.7.1",
- "just-extend": "^4.0.2",
- "path-to-regexp": "^1.7.0"
- }
- },
- "node_modules/nise/node_modules/isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
- },
- "node_modules/nise/node_modules/path-to-regexp": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
- "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
- "dev": true,
- "dependencies": {
- "isarray": "0.0.1"
- }
- },
- "node_modules/node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dev": true,
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- },
- "peerDependencies": {
- "encoding": "^0.1.0"
- },
- "peerDependenciesMeta": {
- "encoding": {
- "optional": true
- }
- }
- },
- "node_modules/node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
- "dev": true
- },
- "node_modules/node-watch": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz",
- "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
- "dependencies": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- }
- },
- "node_modules/normalize-package-data/node_modules/semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true,
- "bin": {
- "semver": "bin/semver"
- }
- },
- "node_modules/normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
- "dependencies": {
- "boolbase": "^1.0.0"
- },
- "funding": {
- "url": "https://github.com/fb55/nth-check?sponsor=1"
- }
- },
- "node_modules/nyc": {
- "version": "14.1.1",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz",
- "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==",
- "dev": true,
- "dependencies": {
- "archy": "^1.0.0",
- "caching-transform": "^3.0.2",
- "convert-source-map": "^1.6.0",
- "cp-file": "^6.2.0",
- "find-cache-dir": "^2.1.0",
- "find-up": "^3.0.0",
- "foreground-child": "^1.5.6",
- "glob": "^7.1.3",
- "istanbul-lib-coverage": "^2.0.5",
- "istanbul-lib-hook": "^2.0.7",
- "istanbul-lib-instrument": "^3.3.0",
- "istanbul-lib-report": "^2.0.8",
- "istanbul-lib-source-maps": "^3.0.6",
- "istanbul-reports": "^2.2.4",
- "js-yaml": "^3.13.1",
- "make-dir": "^2.1.0",
- "merge-source-map": "^1.1.0",
- "resolve-from": "^4.0.0",
- "rimraf": "^2.6.3",
- "signal-exit": "^3.0.2",
- "spawn-wrap": "^1.4.2",
- "test-exclude": "^5.2.3",
- "uuid": "^3.3.2",
- "yargs": "^13.2.2",
- "yargs-parser": "^13.0.0"
- },
- "bin": {
- "nyc": "bin/nyc.js"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/nyc/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/nyc/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/nyc/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/nyc/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
- "engines": {
- "node": "*"
- }
- },
- "node_modules/object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dependencies": {
- "ee-first": "1.1.1"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "devOptional": true,
- "dependencies": {
- "wrappy": "1"
- }
- },
- "node_modules/openapi-schema-validator": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/openapi-schema-validator/-/openapi-schema-validator-3.0.3.tgz",
- "integrity": "sha512-KKpeNEvAmpy6B2JCfyrM4yWjL6vggDCVbBoR8Yfkj0Jltc6PCW+dBbcg+1yrTCuDv80qBQJ6w0ejA71DlOFegA==",
- "dev": true,
- "dependencies": {
- "ajv": "^6.5.2",
- "lodash.merge": "^4.6.1",
- "openapi-types": "1.3.4",
- "swagger-schema-official": "2.0.0-bab6bed"
- }
- },
- "node_modules/openapi-types": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.4.tgz",
- "integrity": "sha512-h8rADpW3k/wepLdERKF0VKMAPdoFYNQCLGPmc/f8sgQ2dxUy+7sY4WAX2XDUDjhKTjbJVbxxofLkzy7f1/tE4g==",
- "dev": true
- },
- "node_modules/optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
- "dev": true,
- "dependencies": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "dependencies": {
- "yocto-queue": "^0.1.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "dependencies": {
- "p-limit": "^3.0.2"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/package-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz",
- "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.15",
- "hasha": "^3.0.0",
- "lodash.flattendeep": "^4.4.0",
- "release-zalgo": "^1.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "dependencies": {
- "callsites": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "dependencies": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/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,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "devOptional": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "node_modules/path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
- },
- "node_modules/path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "dependencies": {
- "pify": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/path-type/node_modules/pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/pathval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
- "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
- "dev": true,
- "engines": {
- "node": "*"
- }
- },
- "node_modules/performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
- },
- "node_modules/picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
- },
- "node_modules/picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true,
- "engines": {
- "node": ">=8.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/jonschlinkert"
- }
- },
- "node_modules/pidusage": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.0.tgz",
- "integrity": "sha512-8VJLToXhj+RYZGNVw8oxc7dS54iCQXUJ+MDFHezQ/fwF5B8W4OWodAMboc1wb08S/4LiHwAmkT4ohf/d3YPPsw==",
- "dependencies": {
- "safe-buffer": "^5.2.1"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/pidusage/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
- "dev": true,
- "dependencies": {
- "find-up": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/pkg-dir/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/pkg-dir/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/platform": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz",
- "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg=="
- },
- "node_modules/pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
- "dev": true,
- "dependencies": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true,
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/preq": {
- "version": "0.5.14",
- "resolved": "https://registry.npmjs.org/preq/-/preq-0.5.14.tgz",
- "integrity": "sha512-kuJ5ndEgjs27kTTQ/P2ipPQoHeCJcAI4i97mU3xSjkjx6CsuQOsCe2l5twTGC0SCB5UkzRpmrpXmvN0Ip4ZCxA==",
- "dependencies": {
- "bluebird": "^3.5.5",
- "request": "^2.88.0",
- "requestretry": "4.0.2"
- },
- "engines": {
- "node": ">=6.0.0"
- }
- },
- "node_modules/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=="
- },
- "node_modules/prom-client": {
- "version": "11.5.3",
- "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz",
- "integrity": "sha512-iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==",
- "dependencies": {
- "tdigest": "^0.1.1"
- },
- "engines": {
- "node": ">=6.1"
- }
- },
- "node_modules/proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dependencies": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- },
- "engines": {
- "node": ">= 0.10"
- }
- },
- "node_modules/pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
- "dev": true
- },
- "node_modules/psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
- },
- "node_modules/punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "dependencies": {
- "side-channel": "^1.0.4"
- },
- "engines": {
- "node": ">=0.6"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/qunit": {
- "version": "2.18.2",
- "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.18.2.tgz",
- "integrity": "sha512-Ux+x9pIU38/F+r3jOl35QzGHPPupMifUvhczCqHgzYWX76fCjPg6VqM84ox1D57fhAXHtpS4Jl91EV8gDoCHPg==",
- "dev": true,
- "dependencies": {
- "commander": "7.2.0",
- "node-watch": "0.7.3",
- "tiny-glob": "0.2.9"
- },
- "bin": {
- "qunit": "bin/qunit.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ramda": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz",
- "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==",
- "dev": true
- },
- "node_modules/randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "dependencies": {
- "safe-buffer": "^5.1.0"
- }
- },
- "node_modules/range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "dependencies": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- },
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
- "dependencies": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "dev": true,
- "dependencies": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/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,
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/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,
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/read-pkg-up/node_modules/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,
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg-up/node_modules/type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/read-pkg/node_modules/type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/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==",
- "dependencies": {
- "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"
- }
- },
- "node_modules/readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "dependencies": {
- "picomatch": "^2.2.1"
- },
- "engines": {
- "node": ">=8.10.0"
- }
- },
- "node_modules/regexp-tree": {
- "version": "0.1.24",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz",
- "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==",
- "dev": true,
- "bin": {
- "regexp-tree": "bin/regexp-tree"
- }
- },
- "node_modules/regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- }
- },
- "node_modules/regextras": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz",
- "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==",
- "dev": true,
- "engines": {
- "node": ">=0.1.14"
- }
- },
- "node_modules/release-zalgo": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
- "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
- "dev": true,
- "dependencies": {
- "es6-error": "^4.0.1"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
- "dependencies": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/request/node_modules/qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/requestretry": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-4.0.2.tgz",
- "integrity": "sha512-ZGdO1ZXUQAeCB9xOS2keSN501y7T1t0zPOD58jTAOwamt6qkcBMaGdRBHEOMQRnDtT5fn7S99F0dwADUqCmYqg==",
- "dependencies": {
- "extend": "^3.0.2",
- "lodash": "^4.17.10",
- "when": "^3.7.7"
- },
- "peerDependencies": {
- "request": "2.*.*"
- }
- },
- "node_modules/require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
- "node_modules/requireindex": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
- "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
- "dev": true,
- "engines": {
- "node": ">=0.10.5"
- }
- },
- "node_modules/resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "dependencies": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- },
- "bin": {
- "resolve": "bin/resolve"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true,
- "engines": {
- "iojs": ">=1.0.0",
- "node": ">=0.10.0"
- }
- },
- "node_modules/rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/rimraf/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "dependencies": {
- "queue-microtask": "^1.2.2"
- }
- },
- "node_modules/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=="
- },
- "node_modules/safe-json-stringify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
- "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
- "optional": true
- },
- "node_modules/safe-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz",
- "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==",
- "dev": true,
- "dependencies": {
- "regexp-tree": "~0.1.1"
- }
- },
- "node_modules/safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "node_modules/semaphore": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz",
- "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==",
- "dev": true,
- "engines": {
- "node": ">=0.8.0"
- }
- },
- "node_modules/semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "dependencies": {
- "lru-cache": "^6.0.0"
- },
- "bin": {
- "semver": "bin/semver.js"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "dependencies": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/send/node_modules/debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dependencies": {
- "ms": "2.0.0"
- }
- },
- "node_modules/send/node_modules/debug/node_modules/ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "node_modules/send/node_modules/ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
- "node_modules/serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
- "dependencies": {
- "randombytes": "^2.1.0"
- }
- },
- "node_modules/serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "dependencies": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/service-runner": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/service-runner/-/service-runner-3.1.0.tgz",
- "integrity": "sha512-eDUg9iP17zodtkPNhy+LOgjL/hh245s+D0Z5fgeB1ds39qHQzBds8tM4GByGbrU4u7zv0sO0RXlyq/j6Q1kZsA==",
- "dependencies": {
- "bluebird": "^3.7.2",
- "bunyan": "^1.8.12",
- "bunyan-syslog-udp": "^0.2.0",
- "dnscache": "^1.0.2",
- "gelf-stream": "^1.1.1",
- "hot-shots": "^6.8.7",
- "js-yaml": "^3.13.1",
- "limitation": "^0.2.3",
- "lodash.clonedeep": "^4.5.0",
- "prom-client": "^11.5.3",
- "semver": "^7.1.2",
- "tar": "^4.4.16",
- "yargs": "^16.2.0"
- },
- "bin": {
- "service-runner": "service-runner.js"
- },
- "engines": {
- "node": ">=10"
- },
- "optionalDependencies": {
- "heapdump": "^0.3.15"
- }
- },
- "node_modules/service-runner/node_modules/cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "node_modules/service-runner/node_modules/emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "node_modules/service-runner/node_modules/is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/service-runner/node_modules/string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dependencies": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/service-runner/node_modules/wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dependencies": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- },
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
- }
- },
- "node_modules/service-runner/node_modules/y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/service-runner/node_modules/yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/service-runner/node_modules/yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true
- },
- "node_modules/setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "node_modules/shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "dependencies": {
- "shebang-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true,
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "dependencies": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "node_modules/sinon": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-10.0.0.tgz",
- "integrity": "sha512-XAn5DxtGVJBlBWYrcYKEhWCz7FLwZGdyvANRyK06419hyEpdT0dMc5A8Vcxg5SCGHc40CsqoKsc1bt1CbJPfNw==",
- "dev": true,
- "dependencies": {
- "@sinonjs/commons": "^1.8.1",
- "@sinonjs/fake-timers": "^6.0.1",
- "@sinonjs/samsam": "^5.3.1",
- "diff": "^4.0.2",
- "nise": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/sinon"
- }
- },
- "node_modules/sinon/node_modules/diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true,
- "engines": {
- "node": ">=0.3.1"
- }
- },
- "node_modules/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,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/spawn-wrap": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz",
- "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==",
- "dev": true,
- "dependencies": {
- "foreground-child": "^1.5.6",
- "mkdirp": "^0.5.0",
- "os-homedir": "^1.0.1",
- "rimraf": "^2.6.2",
- "signal-exit": "^3.0.2",
- "which": "^1.3.0"
- }
- },
- "node_modules/spawn-wrap/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/spawn-wrap/node_modules/rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3"
- },
- "bin": {
- "rimraf": "bin.js"
- }
- },
- "node_modules/spawn-wrap/node_modules/which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "which": "bin/which"
- }
- },
- "node_modules/spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
- "dev": true,
- "dependencies": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "node_modules/spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "dependencies": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "node_modules/spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
- "dev": true
- },
- "node_modules/sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
- },
- "node_modules/sshpk": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
- "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
- "dependencies": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- },
- "bin": {
- "sshpk-conv": "bin/sshpk-conv",
- "sshpk-sign": "bin/sshpk-sign",
- "sshpk-verify": "bin/sshpk-verify"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/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==",
- "dependencies": {
- "safe-buffer": "~5.1.0"
- }
- },
- "node_modules/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,
- "dependencies": {
- "emoji-regex": "^7.0.1",
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^5.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/string-width/node_modules/ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/string-width/node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "dependencies": {
- "ansi-regex": "^5.0.1"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "dev": true,
- "dependencies": {
- "min-indent": "^1.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true,
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "dependencies": {
- "has-flag": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
- "engines": {
- "node": ">= 0.4"
- },
- "funding": {
- "url": "https://github.com/sponsors/ljharb"
- }
- },
- "node_modules/swagger-router": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/swagger-router/-/swagger-router-0.7.4.tgz",
- "integrity": "sha512-HdKJ4DenOXcaChWKST7oFHvd+kclike9rsFfPt3W9JWVvznofcOWGSivyWJECky3tOlw52jqvCKSQrz1l+1D9w==",
- "dependencies": {
- "bluebird": "^3.5.2",
- "js-yaml": "^3.12.0",
- "tassembly": "^0.2.3",
- "template-expression-compiler": "^0.1.10",
- "uuid": "^3.3.2"
- }
- },
- "node_modules/swagger-schema-official": {
- "version": "2.0.0-bab6bed",
- "resolved": "https://registry.npmjs.org/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz",
- "integrity": "sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==",
- "dev": true
- },
- "node_modules/swagger-ui-dist": {
- "version": "3.52.5",
- "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.52.5.tgz",
- "integrity": "sha512-8z18eX8G/jbTXYzyNIaobrnD7PSN7yU/YkSasMmajrXtw0FGS64XjrKn5v37d36qmU3o1xLeuYnktshRr7uIFw=="
- },
- "node_modules/tar": {
- "version": "4.4.19",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
- "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
- "dependencies": {
- "chownr": "^1.1.4",
- "fs-minipass": "^1.2.7",
- "minipass": "^2.9.0",
- "minizlib": "^1.3.3",
- "mkdirp": "^0.5.5",
- "safe-buffer": "^5.2.1",
- "yallist": "^3.1.1"
- },
- "engines": {
- "node": ">=4.5"
- }
- },
- "node_modules/tar/node_modules/safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ]
- },
- "node_modules/tar/node_modules/yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- },
- "node_modules/tassembly": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/tassembly/-/tassembly-0.2.3.tgz",
- "integrity": "sha512-rpYD3bbgITu9vxxhRgMDANK3wMUw4WcQ9PJDLJnDJGs13rbHHnfuPB0sVmkTOn0c01BIUe7xZdDcF2IzlgMEHw=="
- },
- "node_modules/tdigest": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz",
- "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==",
- "dependencies": {
- "bintrees": "1.0.2"
- }
- },
- "node_modules/template-expression-compiler": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/template-expression-compiler/-/template-expression-compiler-0.1.10.tgz",
- "integrity": "sha512-AuGyxkl8I+GhmYqt4JzsxZWIMgB1TnuCQCkRdOhHlZ612peP+yoXcoYVdBJWP/NYAFwmUUliBjuVwgqog0y5KQ=="
- },
- "node_modules/test-exclude": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
- "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
- "dev": true,
- "dependencies": {
- "glob": "^7.1.3",
- "minimatch": "^3.0.4",
- "read-pkg-up": "^4.0.0",
- "require-main-filename": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/test-exclude/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/test-exclude/node_modules/glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/test-exclude/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/test-exclude/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/test-exclude/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/test-exclude/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/test-exclude/node_modules/read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
- "dev": true,
- "dependencies": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/test-exclude/node_modules/read-pkg-up": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
- "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
- "dev": true,
- "dependencies": {
- "find-up": "^3.0.0",
- "read-pkg": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "node_modules/tiny-glob": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
- "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
- "dev": true,
- "dependencies": {
- "globalyzer": "0.1.0",
- "globrex": "^0.1.2"
- }
- },
- "node_modules/to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "dependencies": {
- "is-number": "^7.0.0"
- },
- "engines": {
- "node": ">=8.0"
- }
- },
- "node_modules/toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "dependencies": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- },
- "engines": {
- "node": ">=0.8"
- }
- },
- "node_modules/tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "node_modules/tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "dependencies": {
- "safe-buffer": "^5.0.1"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
- },
- "node_modules/type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "dependencies": {
- "prelude-ls": "^1.2.1"
- },
- "engines": {
- "node": ">= 0.8.0"
- }
- },
- "node_modules/type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dependencies": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- },
- "engines": {
- "node": ">= 0.6"
- }
- },
- "node_modules/underscore": {
- "version": "1.13.6",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
- "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
- },
- "node_modules/unix-dgram": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.4.tgz",
- "integrity": "sha512-7tpK6x7ls7J7pDrrAU63h93R0dVhRbPwiRRCawR10cl+2e1VOvF3bHlVJc6WI1dl/8qk5He673QU+Ogv7bPNaw==",
- "hasInstallScript": true,
- "optional": true,
- "dependencies": {
- "bindings": "^1.3.0",
- "nan": "^2.13.2"
- },
- "engines": {
- "node": ">=0.10.48"
- }
- },
- "node_modules/unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/upath": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
- "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==",
- "dev": true,
- "engines": {
- "node": ">=4",
- "yarn": "*"
- }
- },
- "node_modules/update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
- "dev": true,
- "funding": [
- {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- },
- {
- "type": "tidelift",
- "url": "https://tidelift.com/funding/github/npm/browserslist"
- }
- ],
- "dependencies": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- },
- "bin": {
- "browserslist-lint": "cli.js"
- },
- "peerDependencies": {
- "browserslist": ">= 4.21.0"
- }
- },
- "node_modules/uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "dependencies": {
- "punycode": "^2.1.0"
- }
- },
- "node_modules/util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "node_modules/utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
- "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.",
- "bin": {
- "uuid": "bin/uuid"
- }
- },
- "node_modules/validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "dependencies": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "node_modules/vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "engines": {
- "node": ">= 0.8"
- }
- },
- "node_modules/verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "engines": [
- "node >=0.6.0"
- ],
- "dependencies": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "node_modules/verror/node_modules/core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
- },
- "node_modules/vue-eslint-parser": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
- "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
- "dev": true,
- "dependencies": {
- "debug": "^4.3.2",
- "eslint-scope": "^7.0.0",
- "eslint-visitor-keys": "^3.1.0",
- "espree": "^9.0.0",
- "esquery": "^1.4.0",
- "lodash": "^4.17.21",
- "semver": "^7.3.5"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=6.0.0"
- }
- },
- "node_modules/webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "node_modules/whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "dependencies": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "node_modules/when": {
- "version": "3.7.8",
- "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
- "integrity": "sha512-5cZ7mecD3eYcMiCH4wtRPA5iFJZ50BJYDfckI5RRpQiktMiYTcn0ccLTZOvcbBume+1304fQztxeNzNS9Gvrnw=="
- },
- "node_modules/which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "dependencies": {
- "isexe": "^2.0.0"
- },
- "bin": {
- "node-which": "bin/node-which"
- },
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
- "dev": true
- },
- "node_modules/wikimedia-kad-fork": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/wikimedia-kad-fork/-/wikimedia-kad-fork-1.3.6.tgz",
- "integrity": "sha512-m+IxFN4JatoQPRo0N46xMh7tR6FSznb/ithIchAy7Wg9mrkc4/bE/3BhlJS410quFJFrJp8lJJp93g4uTbj4lA==",
- "dependencies": {
- "async": "^0.9.0",
- "clarinet": "^0.11.0",
- "colors": "^1.0.3",
- "hat": "0.0.3",
- "kad-fs": "0.0.4",
- "kad-localstorage": "0.0.7",
- "kad-memstore": "0.0.1",
- "lodash": "^4.17.11",
- "ms": "^0.7.0",
- "msgpack5": "^3.3.0"
- }
- },
- "node_modules/wikimedia-kad-fork/node_modules/ms": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz",
- "integrity": "sha512-lrKNzMWqQZgwJahtrtrM+9NgOoDUveDrVmm5aGXrf3BdtL0mq7X6IVzoZaw+TfNti29eHd1/8GI+h45K5cQ6/w=="
- },
- "node_modules/word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true,
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/workerpool": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
- "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==",
- "dev": true
- },
- "node_modules/wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
- "dev": true,
- "dependencies": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true,
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/wrap-ansi/node_modules/ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "dependencies": {
- "color-convert": "^1.9.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/wrap-ansi/node_modules/color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "dependencies": {
- "color-name": "1.1.3"
- }
- },
- "node_modules/wrap-ansi/node_modules/color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "dependencies": {
- "ansi-regex": "^4.1.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "devOptional": true
- },
- "node_modules/write-file-atomic": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
- "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
- "dev": true,
- "dependencies": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- },
- "node_modules/ws": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz",
- "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==",
- "engines": {
- "node": ">=10.0.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
- "node_modules/y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "node_modules/yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "node_modules/yaml": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
- "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg==",
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/yaml-eslint-parser": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz",
- "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==",
- "dev": true,
- "dependencies": {
- "eslint-visitor-keys": "^3.0.0",
- "lodash": "^4.17.21",
- "yaml": "^1.10.2"
- },
- "engines": {
- "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
- }
- },
- "node_modules/yaml-eslint-parser/node_modules/yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true,
- "engines": {
- "node": ">= 6"
- }
- },
- "node_modules/yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
- "dev": true,
- "dependencies": {
- "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"
- }
- },
- "node_modules/yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
- "dev": true,
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- },
- "node_modules/yargs-unparser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
- "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "dev": true,
- "dependencies": {
- "camelcase": "^6.0.0",
- "decamelize": "^4.0.0",
- "flat": "^5.0.2",
- "is-plain-obj": "^2.1.0"
- },
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/yargs-unparser/node_modules/camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/yargs-unparser/node_modules/decamelize": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/yargs/node_modules/find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yargs/node_modules/locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yargs/node_modules/p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/yargs/node_modules/p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/yargs/node_modules/path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true,
- "engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- }
- },
- "dependencies": {
- "@babel/code-frame": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz",
- "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==",
- "dev": true,
- "requires": {
- "@babel/highlight": "^7.18.6"
- }
- },
- "@babel/generator": {
- "version": "7.19.5",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz",
- "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.19.4",
- "@jridgewell/gen-mapping": "^0.3.2",
- "jsesc": "^2.5.1"
- }
- },
- "@babel/helper-environment-visitor": {
- "version": "7.18.9",
- "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz",
- "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==",
- "dev": true
- },
- "@babel/helper-function-name": {
- "version": "7.19.0",
- "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz",
- "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==",
- "dev": true,
- "requires": {
- "@babel/template": "^7.18.10",
- "@babel/types": "^7.19.0"
- }
- },
- "@babel/helper-hoist-variables": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz",
- "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-split-export-declaration": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz",
- "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==",
- "dev": true,
- "requires": {
- "@babel/types": "^7.18.6"
- }
- },
- "@babel/helper-string-parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz",
- "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==",
- "dev": true
- },
- "@babel/helper-validator-identifier": {
- "version": "7.19.1",
- "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz",
- "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==",
- "dev": true
- },
- "@babel/highlight": {
- "version": "7.18.6",
- "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz",
- "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.18.6",
- "chalk": "^2.0.0",
- "js-tokens": "^4.0.0"
- },
- "dependencies": {
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "@babel/parser": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz",
- "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==",
- "dev": true
- },
- "@babel/template": {
- "version": "7.18.10",
- "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz",
- "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/parser": "^7.18.10",
- "@babel/types": "^7.18.10"
- }
- },
- "@babel/traverse": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz",
- "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.18.6",
- "@babel/generator": "^7.19.4",
- "@babel/helper-environment-visitor": "^7.18.9",
- "@babel/helper-function-name": "^7.19.0",
- "@babel/helper-hoist-variables": "^7.18.6",
- "@babel/helper-split-export-declaration": "^7.18.6",
- "@babel/parser": "^7.19.4",
- "@babel/types": "^7.19.4",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- },
- "dependencies": {
- "globals": {
- "version": "11.12.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
- "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
- "dev": true
- }
- }
- },
- "@babel/types": {
- "version": "7.19.4",
- "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.19.4.tgz",
- "integrity": "sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==",
- "dev": true,
- "requires": {
- "@babel/helper-string-parser": "^7.19.4",
- "@babel/helper-validator-identifier": "^7.19.1",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@es-joy/jsdoccomment": {
- "version": "0.20.1",
- "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.20.1.tgz",
- "integrity": "sha512-oeJK41dcdqkvdZy/HctKklJNkt/jh+av3PZARrZEl+fs/8HaHeeYoAvEwOV0u5I6bArTF17JEsTZMY359e/nfQ==",
- "dev": true,
- "requires": {
- "comment-parser": "1.3.0",
- "esquery": "^1.4.0",
- "jsdoc-type-pratt-parser": "~2.2.3"
- }
- },
- "@eslint/eslintrc": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.4.1.tgz",
- "integrity": "sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA==",
- "dev": true,
- "requires": {
- "ajv": "^6.12.4",
- "debug": "^4.3.2",
- "espree": "^9.4.0",
- "globals": "^13.19.0",
- "ignore": "^5.2.0",
- "import-fresh": "^3.2.1",
- "js-yaml": "^4.1.0",
- "minimatch": "^3.1.2",
- "strip-json-comments": "^3.1.1"
- },
- "dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- }
- }
- },
- "@humanwhocodes/module-importer": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
- "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
- "dev": true
- },
- "@humanwhocodes/object-schema": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
- "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
- "dev": true
- },
- "@jridgewell/gen-mapping": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz",
- "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==",
- "dev": true,
- "requires": {
- "@jridgewell/set-array": "^1.0.1",
- "@jridgewell/sourcemap-codec": "^1.4.10",
- "@jridgewell/trace-mapping": "^0.3.9"
- }
- },
- "@jridgewell/resolve-uri": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz",
- "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==",
- "dev": true
- },
- "@jridgewell/set-array": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz",
- "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==",
- "dev": true
- },
- "@jridgewell/sourcemap-codec": {
- "version": "1.4.14",
- "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz",
- "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==",
- "dev": true
- },
- "@jridgewell/trace-mapping": {
- "version": "0.3.16",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.16.tgz",
- "integrity": "sha512-LCQ+NeThyJ4k1W2d+vIKdxuSt9R3pQSZ4P92m7EakaYuXcVWbHuT5bjNcqLd4Rdgi6xYWYDvBJZJLZSLanjDcA==",
- "dev": true,
- "requires": {
- "@jridgewell/resolve-uri": "3.1.0",
- "@jridgewell/sourcemap-codec": "1.4.14"
- }
- },
- "@mdn/browser-compat-data": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-4.2.1.tgz",
- "integrity": "sha512-EWUguj2kd7ldmrF9F+vI5hUOralPd+sdsUnYbRy33vZTuZkduC1shE9TtEMEjAQwyfyMb4ole5KtjF8MsnQOlA==",
- "dev": true
- },
- "@nodelib/fs.scandir": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
- "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
- "dev": true,
- "requires": {
- "@nodelib/fs.stat": "2.0.5",
- "run-parallel": "^1.1.9"
- }
- },
- "@nodelib/fs.stat": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
- "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
- "dev": true
- },
- "@nodelib/fs.walk": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
- "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
- "dev": true,
- "requires": {
- "@nodelib/fs.scandir": "2.1.5",
- "fastq": "^1.6.0"
- }
- },
- "@sinonjs/commons": {
- "version": "1.8.3",
- "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz",
- "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==",
- "dev": true,
- "requires": {
- "type-detect": "4.0.8"
- }
- },
- "@sinonjs/fake-timers": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz",
- "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.7.0"
- }
- },
- "@sinonjs/samsam": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz",
- "integrity": "sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.6.0",
- "lodash.get": "^4.4.2",
- "type-detect": "^4.0.8"
- }
- },
- "@sinonjs/text-encoding": {
- "version": "0.7.2",
- "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz",
- "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==",
- "dev": true
- },
- "@types/normalize-package-data": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz",
- "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==",
- "dev": true
- },
- "@ungap/promise-all-settled": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
- "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
- "dev": true
- },
- "accepts": {
- "version": "1.3.8",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
- "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "requires": {
- "mime-types": "~2.1.34",
- "negotiator": "0.6.3"
- }
- },
- "acorn": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.0.tgz",
- "integrity": "sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==",
- "dev": true
- },
- "acorn-jsx": {
- "version": "5.3.2",
- "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
- "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
- "dev": true,
- "requires": {}
- },
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- },
- "dependencies": {
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- }
- }
- },
- "ansi-colors": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
- "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
- "dev": true
- },
- "ansi-regex": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
- "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
- },
- "ansi-styles": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
- "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "requires": {
- "color-convert": "^2.0.1"
- }
- },
- "anymatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
- "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
- "dev": true,
- "requires": {
- "normalize-path": "^3.0.0",
- "picomatch": "^2.0.4"
- }
- },
- "append-transform": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz",
- "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==",
- "dev": true,
- "requires": {
- "default-require-extensions": "^2.0.0"
- }
- },
- "archy": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz",
- "integrity": "sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==",
- "dev": true
- },
- "argparse": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
- "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
- "requires": {
- "sprintf-js": "~1.0.2"
- }
- },
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
- },
- "asap": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz",
- "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA=="
- },
- "asn1": {
- "version": "0.2.6",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
- "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
- "requires": {
- "safer-buffer": "~2.1.0"
- }
- },
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="
- },
- "assertion-error": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
- "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
- "dev": true
- },
- "ast-metadata-inferer": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/ast-metadata-inferer/-/ast-metadata-inferer-0.7.0.tgz",
- "integrity": "sha512-OkMLzd8xelb3gmnp6ToFvvsHLtS6CbagTkFQvQ+ZYFe3/AIl9iKikNR9G7pY3GfOR/2Xc222hwBjzI7HLkE76Q==",
- "dev": true,
- "requires": {
- "@mdn/browser-compat-data": "^3.3.14"
- },
- "dependencies": {
- "@mdn/browser-compat-data": {
- "version": "3.3.14",
- "resolved": "https://registry.npmjs.org/@mdn/browser-compat-data/-/browser-compat-data-3.3.14.tgz",
- "integrity": "sha512-n2RC9d6XatVbWFdHLimzzUJxJ1KY8LdjqrW6YvGPiRmsHkhOUx74/Ct10x5Yo7bC/Jvqx7cDEW8IMPv/+vwEzA==",
- "dev": true
- }
- }
- },
- "async": {
- "version": "0.9.2",
- "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
- "integrity": "sha512-l6ToIJIotphWahxxHyzK9bnLR6kM4jJIIgLShZeqLY7iboHoGkdgFl7W2/Ivi4SkMJYGKqW8vSuk0uKUj6qsSw=="
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
- },
- "avro-js": {
- "version": "1.11.1",
- "resolved": "https://registry.npmjs.org/avro-js/-/avro-js-1.11.1.tgz",
- "integrity": "sha512-poQW99RWRrO4JoThqnJrvfqmLuP4Wav/DCBd8PQttY9MfNfTiIGFYxd4tgADI+wIU2JPiiW0aLWQglZLAOjXeg==",
- "requires": {
- "underscore": "^1.13.2"
- }
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="
- },
- "aws4": {
- "version": "1.11.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
- "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
- },
- "balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
- "devOptional": true
- },
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
- "requires": {
- "tweetnacl": "^0.14.3"
- }
- },
- "benchmark": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/benchmark/-/benchmark-2.1.4.tgz",
- "integrity": "sha512-l9MlfN4M1K/H2fbhfMy3B7vJd6AGKJVQn2h6Sg/Yx+KckoUA7ewS5Vv6TjSq18ooE1kS9hhAlQRH3AkXIh/aOQ==",
- "requires": {
- "lodash": "^4.17.4",
- "platform": "^1.3.3"
- }
- },
- "binary-extensions": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
- "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
- "dev": true
- },
- "bindings": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
- "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
- "optional": true,
- "requires": {
- "file-uri-to-path": "1.0.0"
- }
- },
- "bintrees": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz",
- "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw=="
- },
- "bl": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.3.tgz",
- "integrity": "sha512-pvcNpa0UU69UT341rO6AYy4FVAIkUHuZXRIWbq+zHnsVcRzDDjIAhGuuYoi0d//cwIwtt4pkpKycWEfjdV+vww==",
- "requires": {
- "readable-stream": "^2.3.5",
- "safe-buffer": "^5.1.1"
- }
- },
- "bluebird": {
- "version": "3.7.2",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
- "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="
- },
- "body-parser": {
- "version": "1.20.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz",
- "integrity": "sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==",
- "requires": {
- "bytes": "3.1.2",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "on-finished": "2.4.1",
- "qs": "6.11.0",
- "raw-body": "2.5.1",
- "type-is": "~1.6.18",
- "unpipe": "1.0.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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- }
- }
- },
- "boolbase": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
- "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "devOptional": true,
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "braces": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
- "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
- "dev": true,
- "requires": {
- "fill-range": "^7.0.1"
- }
- },
- "browser-stdout": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
- "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
- "dev": true
- },
- "browserslist": {
- "version": "4.21.4",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz",
- "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==",
- "dev": true,
- "requires": {
- "caniuse-lite": "^1.0.30001400",
- "electron-to-chromium": "^1.4.251",
- "node-releases": "^2.0.6",
- "update-browserslist-db": "^1.0.9"
- }
- },
- "builtin-modules": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
- "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
- "dev": true
- },
- "bunyan": {
- "version": "1.8.15",
- "resolved": "https://registry.npmjs.org/bunyan/-/bunyan-1.8.15.tgz",
- "integrity": "sha512-0tECWShh6wUysgucJcBAoYegf3JJoZWibxdqhTm7OHPeT42qdjkZ29QCMcKwbgU1kiH+auSIasNRXMLWXafXig==",
- "requires": {
- "dtrace-provider": "~0.8",
- "moment": "^2.19.3",
- "mv": "~2",
- "safe-json-stringify": "~1"
- }
- },
- "bunyan-syslog-udp": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/bunyan-syslog-udp/-/bunyan-syslog-udp-0.2.0.tgz",
- "integrity": "sha512-tY6iaw+iYbCjlsAgAyO4CeA7Usnj5VndygMfd2PcHK++626oMoHANcdsH5tq5VxRPsbk9M1fbuk0a5pX9axV2w=="
- },
- "bytes": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
- "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
- },
- "caching-transform": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/caching-transform/-/caching-transform-3.0.2.tgz",
- "integrity": "sha512-Mtgcv3lh3U0zRii/6qVgQODdPA4G3zhG+jtbCWj39RXuUFTMzH0vcdMtaJS1jPowd+It2Pqr6y3NJMQqOqCE2w==",
- "dev": true,
- "requires": {
- "hasha": "^3.0.0",
- "make-dir": "^2.0.0",
- "package-hash": "^3.0.0",
- "write-file-atomic": "^2.4.2"
- }
- },
- "call-bind": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
- "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
- "requires": {
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.0.2"
- }
- },
- "callsites": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
- "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
- "caniuse-lite": {
- "version": "1.0.30001419",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001419.tgz",
- "integrity": "sha512-aFO1r+g6R7TW+PNQxKzjITwLOyDhVRLjW0LcwS/HCZGUUKTGNp9+IwLC4xyDSZBygVL/mxaFR3HIV6wEKQuSzw==",
- "dev": true
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="
- },
- "chai": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.6.tgz",
- "integrity": "sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==",
- "dev": true,
- "requires": {
- "assertion-error": "^1.1.0",
- "check-error": "^1.0.2",
- "deep-eql": "^3.0.1",
- "get-func-name": "^2.0.0",
- "loupe": "^2.3.1",
- "pathval": "^1.1.1",
- "type-detect": "^4.0.5"
- }
- },
- "chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
- }
- },
- "check-error": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz",
- "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==",
- "dev": true
- },
- "chokidar": {
- "version": "3.5.3",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
- "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
- "dev": true,
- "requires": {
- "anymatch": "~3.1.2",
- "braces": "~3.0.2",
- "fsevents": "~2.3.2",
- "glob-parent": "~5.1.2",
- "is-binary-path": "~2.1.0",
- "is-glob": "~4.0.1",
- "normalize-path": "~3.0.0",
- "readdirp": "~3.6.0"
- },
- "dependencies": {
- "glob-parent": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
- "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.1"
- }
- }
- }
- },
- "chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
- },
- "ci-info": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.5.0.tgz",
- "integrity": "sha512-yH4RezKOGlOhxkmhbeNuC4eYZKAUsEaGtBuBzDDP1eFUKiccDWzBABxBfOx31IDwDIXMTxWuwAxUGModvkbuVw==",
- "dev": true
- },
- "clarinet": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/clarinet/-/clarinet-0.11.0.tgz",
- "integrity": "sha512-6hgoCgDgdyEtrXsk1tMomUl+S6wnslv2F1muNTOuhQemOhauR+Q0FtBdrj9k+qyIDLm0TVW0QMZ10aeWwRDgIA=="
- },
- "clean-regexp": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz",
- "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==",
- "dev": true,
- "requires": {
- "escape-string-regexp": "^1.0.5"
- }
- },
- "cliui": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
- "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
- "dev": true,
- "requires": {
- "string-width": "^3.1.0",
- "strip-ansi": "^5.2.0",
- "wrap-ansi": "^5.1.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.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==",
- "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=="
- },
- "colors": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
- "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "commander": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
- "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
- "dev": true
- },
- "comment-parser": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.0.tgz",
- "integrity": "sha512-hRpmWIKgzd81vn0ydoWoyPoALEOnF4wt8yKD35Ib1D6XC2siLiYaiqfGkYrunuKdsXGwpBpHU3+9r+RVw2NZfA==",
- "dev": true
- },
- "commondir": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
- "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
- "dev": true
- },
- "compressible": {
- "version": "2.0.18",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz",
- "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==",
- "requires": {
- "mime-db": ">= 1.43.0 < 2"
- }
- },
- "compression": {
- "version": "1.7.4",
- "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz",
- "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==",
- "requires": {
- "accepts": "~1.3.5",
- "bytes": "3.0.0",
- "compressible": "~2.0.16",
- "debug": "2.6.9",
- "on-headers": "~1.0.2",
- "safe-buffer": "5.1.2",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw=="
- },
- "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- }
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
- "devOptional": true
- },
- "content-disposition": {
- "version": "0.5.4",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
- "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "requires": {
- "safe-buffer": "5.2.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
- },
- "convert-source-map": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz",
- "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==",
- "dev": true
- },
- "cookie": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
- "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
- },
- "cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
- },
- "core-js": {
- "version": "3.25.5",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz",
- "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==",
- "dev": true
- },
- "core-util-is": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
- "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
- },
- "cp-file": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz",
- "integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "make-dir": "^2.0.0",
- "nested-error-stacks": "^2.0.0",
- "pify": "^4.0.1",
- "safe-buffer": "^5.0.1"
- }
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "dev": true,
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- }
- },
- "cssesc": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
- "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
- "dev": true
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "debug": {
- "version": "4.3.4",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
- "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
- "dev": true
- },
- "deep-eql": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz",
- "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==",
- "dev": true,
- "requires": {
- "type-detect": "^4.0.0"
- }
- },
- "deep-is": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
- "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
- "dev": true
- },
- "default-require-extensions": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz",
- "integrity": "sha512-B0n2zDIXpzLzKeoEozorDSa1cHc1t0NjmxP0zuAxbizNU2MBqYJJKYXrrFdKuQliojXynrxgd7l4ahfg/+aA5g==",
- "dev": true,
- "requires": {
- "strip-bom": "^3.0.0"
- }
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
- },
- "depd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
- "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
- },
- "destroy": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
- "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
- },
- "diff": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
- "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
- "dev": true
- },
- "dnscache": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/dnscache/-/dnscache-1.0.2.tgz",
- "integrity": "sha512-2FFKzmLGOnD+Y378bRKH+gTjRMuSpH7OKgPy31KjjfCoKZx7tU8Dmqfd/3fhG2d/4bppuN8/KtWMUZBAcUCRnQ==",
- "requires": {
- "asap": "^2.0.6",
- "lodash.clone": "^4.5.0"
- }
- },
- "doctrine": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
- "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
- "dev": true,
- "requires": {
- "esutils": "^2.0.2"
- }
- },
- "dom-storage": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz",
- "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q=="
- },
- "domino": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/domino/-/domino-2.1.6.tgz",
- "integrity": "sha512-3VdM/SXBZX2omc9JF9nOPCtDaYQ67BGp5CoLpIQlO2KCAPETs8TcDHacF26jXadGbvUteZzRTeos2fhID5+ucQ=="
- },
- "dtrace-provider": {
- "version": "0.8.8",
- "resolved": "https://registry.npmjs.org/dtrace-provider/-/dtrace-provider-0.8.8.tgz",
- "integrity": "sha512-b7Z7cNtHPhH9EJhNNbbeqTcXB8LGFFZhq1PGgEvpeHlzd36bhbdTWoE/Ba/YguqpBSlAPKnARWhVlhunCMwfxg==",
- "optional": true,
- "requires": {
- "nan": "^2.14.0"
- }
- },
- "ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
- },
- "electron-to-chromium": {
- "version": "1.4.281",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.281.tgz",
- "integrity": "sha512-yer0w5wCYdFoZytfmbNhwiGI/3cW06+RV7E23ln4490DVMxs7PvYpbsrSmAiBn/V6gode8wvJlST2YfWgvzWIg==",
- "dev": true
- },
- "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
- },
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
- },
- "error-ex": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
- "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
- "dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
- },
- "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
- },
- "escalade": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
- "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
- },
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
- "dev": true
- },
- "eslint": {
- "version": "8.31.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.31.0.tgz",
- "integrity": "sha512-0tQQEVdmPZ1UtUKXjX7EMm9BlgJ08G90IhWh0PKDCb3ZLsgAOHI8fYSIzYVZej92zsgq+ft0FGsxhJ3xo2tbuA==",
- "dev": true,
- "requires": {
- "@eslint/eslintrc": "^1.4.1",
- "@humanwhocodes/config-array": "^0.11.8",
- "@humanwhocodes/module-importer": "^1.0.1",
- "@nodelib/fs.walk": "^1.2.8",
- "ajv": "^6.10.0",
- "chalk": "^4.0.0",
- "cross-spawn": "^7.0.2",
- "debug": "^4.3.2",
- "doctrine": "^3.0.0",
- "escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.1",
- "eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.4.0",
- "esquery": "^1.4.0",
- "esutils": "^2.0.2",
- "fast-deep-equal": "^3.1.3",
- "file-entry-cache": "^6.0.1",
- "find-up": "^5.0.0",
- "glob-parent": "^6.0.2",
- "globals": "^13.19.0",
- "grapheme-splitter": "^1.0.4",
- "ignore": "^5.2.0",
- "import-fresh": "^3.0.0",
- "imurmurhash": "^0.1.4",
- "is-glob": "^4.0.0",
- "is-path-inside": "^3.0.3",
- "js-sdsl": "^4.1.4",
- "js-yaml": "^4.1.0",
- "json-stable-stringify-without-jsonify": "^1.0.1",
- "levn": "^0.4.1",
- "lodash.merge": "^4.6.2",
- "minimatch": "^3.1.2",
- "natural-compare": "^1.4.0",
- "optionator": "^0.9.1",
- "regexpp": "^3.2.0",
- "strip-ansi": "^6.0.1",
- "strip-json-comments": "^3.1.0",
- "text-table": "^0.2.0"
- },
- "dependencies": {
- "@humanwhocodes/config-array": {
- "version": "0.11.8",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.8.tgz",
- "integrity": "sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==",
- "dev": true,
- "requires": {
- "@humanwhocodes/object-schema": "^1.2.1",
- "debug": "^4.1.1",
- "minimatch": "^3.0.5"
- }
- },
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- }
- }
- },
- "eslint-config-wikimedia": {
- "version": "0.22.1",
- "resolved": "https://registry.npmjs.org/eslint-config-wikimedia/-/eslint-config-wikimedia-0.22.1.tgz",
- "integrity": "sha512-TtN+gWJrcW0i1sEu7vPE1tHpEilrMUuTxP6UK97Amvva/KDV9/tvRUifGhw0q5uBswp+HWgF12p8rq68hZqMbA==",
- "dev": true,
- "requires": {
- "eslint": "^8.6.0",
- "eslint-plugin-compat": "^4.0.2",
- "eslint-plugin-es": "^4.1.0",
- "eslint-plugin-jsdoc": "^37.7.1",
- "eslint-plugin-json-es": "^1.5.4",
- "eslint-plugin-mediawiki": "^0.3.0",
- "eslint-plugin-mocha": "^9.0.0",
- "eslint-plugin-no-jquery": "^2.7.0",
- "eslint-plugin-node": "^11.1.0",
- "eslint-plugin-qunit": "^7.2.0",
- "eslint-plugin-unicorn": "^40.1.0",
- "eslint-plugin-vue": "^8.4.1",
- "eslint-plugin-wdio": "^7.4.2",
- "eslint-plugin-yml": "^0.13.0"
- }
- },
- "eslint-plugin-compat": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/eslint-plugin-compat/-/eslint-plugin-compat-4.0.2.tgz",
- "integrity": "sha512-xqvoO54CLTVaEYGMzhu35Wzwk/As7rCvz/2dqwnFiWi0OJccEtGIn+5qq3zqIu9nboXlpdBN579fZcItC73Ycg==",
- "dev": true,
- "requires": {
- "@mdn/browser-compat-data": "^4.1.5",
- "ast-metadata-inferer": "^0.7.0",
- "browserslist": "^4.16.8",
- "caniuse-lite": "^1.0.30001304",
- "core-js": "^3.16.2",
- "find-up": "^5.0.0",
- "lodash.memoize": "4.1.2",
- "semver": "7.3.5"
- },
- "dependencies": {
- "semver": {
- "version": "7.3.5",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
- "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
- "dev": true,
- "requires": {
- "lru-cache": "^6.0.0"
- }
- }
- }
- },
- "eslint-plugin-es": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-4.1.0.tgz",
- "integrity": "sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==",
- "dev": true,
- "requires": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "dependencies": {
- "eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- }
- }
- },
- "eslint-plugin-jsdoc": {
- "version": "37.9.7",
- "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-37.9.7.tgz",
- "integrity": "sha512-8alON8yYcStY94o0HycU2zkLKQdcS+qhhOUNQpfONHHwvI99afbmfpYuPqf6PbLz5pLZldG3Te5I0RbAiTN42g==",
- "dev": true,
- "requires": {
- "@es-joy/jsdoccomment": "~0.20.1",
- "comment-parser": "1.3.0",
- "debug": "^4.3.3",
- "escape-string-regexp": "^4.0.0",
- "esquery": "^1.4.0",
- "regextras": "^0.8.0",
- "semver": "^7.3.5",
- "spdx-expression-parse": "^3.0.1"
- },
- "dependencies": {
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true
- }
- }
- },
- "eslint-plugin-json-es": {
- "version": "1.5.7",
- "resolved": "https://registry.npmjs.org/eslint-plugin-json-es/-/eslint-plugin-json-es-1.5.7.tgz",
- "integrity": "sha512-ehBHcCcJo4iViYx6vp3T+SmwzLIlVDzZNoVxN/txZIiPwDQ26mnYaN5iJ3imqN4l1b8z6rbxEH2kB9XDGxeU/w==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^3.3.0",
- "espree": "^9.3.1"
- }
- },
- "eslint-plugin-mediawiki": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mediawiki/-/eslint-plugin-mediawiki-0.3.0.tgz",
- "integrity": "sha512-Lhyj2PSkhDzYSc1PNbURysY/WoqvY0brw558ZInT3erzf5KUlro18MTKFdV+nlht475ZgnsfHsgfg6Ut2w1SVg==",
- "dev": true,
- "requires": {
- "eslint-plugin-vue": "^7.20.0",
- "upath": "^2.0.1"
- },
- "dependencies": {
- "acorn": {
- "version": "7.4.1",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
- "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
- "dev": true
- },
- "eslint-plugin-vue": {
- "version": "7.20.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-7.20.0.tgz",
- "integrity": "sha512-oVNDqzBC9h3GO+NTgWeLMhhGigy6/bQaQbHS+0z7C4YEu/qK/yxHvca/2PTZtGNPsCrHwOTgKMrwu02A9iPBmw==",
- "dev": true,
- "requires": {
- "eslint-utils": "^2.1.0",
- "natural-compare": "^1.4.0",
- "semver": "^6.3.0",
- "vue-eslint-parser": "^7.10.0"
- }
- },
- "eslint-scope": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
- "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^4.1.1"
- }
- },
- "eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- },
- "espree": {
- "version": "6.2.1",
- "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
- "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
- "dev": true,
- "requires": {
- "acorn": "^7.1.1",
- "acorn-jsx": "^5.2.0",
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "estraverse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
- "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
- "dev": true
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- },
- "vue-eslint-parser": {
- "version": "7.11.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-7.11.0.tgz",
- "integrity": "sha512-qh3VhDLeh773wjgNTl7ss0VejY9bMMa0GoDG2fQVyDzRFdiU3L7fw74tWZDHNQXdZqxO3EveQroa9ct39D2nqg==",
- "dev": true,
- "requires": {
- "debug": "^4.1.1",
- "eslint-scope": "^5.1.1",
- "eslint-visitor-keys": "^1.1.0",
- "espree": "^6.2.1",
- "esquery": "^1.4.0",
- "lodash": "^4.17.21",
- "semver": "^6.3.0"
- }
- }
- }
- },
- "eslint-plugin-mocha": {
- "version": "9.0.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-9.0.0.tgz",
- "integrity": "sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==",
- "dev": true,
- "requires": {
- "eslint-utils": "^3.0.0",
- "ramda": "^0.27.1"
- }
- },
- "eslint-plugin-no-jquery": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-no-jquery/-/eslint-plugin-no-jquery-2.7.0.tgz",
- "integrity": "sha512-Aeg7dA6GTH1AcWLlBtWNzOU9efK5KpNi7b0EhBO0o0M+awyzguUUo8gF6hXGjQ9n5h8/uRtYv9zOqQkeC5CG0w==",
- "dev": true,
- "requires": {}
- },
- "eslint-plugin-node": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
- "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
- "dev": true,
- "requires": {
- "eslint-plugin-es": "^3.0.0",
- "eslint-utils": "^2.0.0",
- "ignore": "^5.1.1",
- "minimatch": "^3.0.4",
- "resolve": "^1.10.1",
- "semver": "^6.1.0"
- },
- "dependencies": {
- "eslint-plugin-es": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
- "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
- "dev": true,
- "requires": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- }
- },
- "eslint-utils": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
- "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^1.1.0"
- }
- },
- "eslint-visitor-keys": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
- "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
- "dev": true
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "eslint-plugin-qunit": {
- "version": "7.3.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-qunit/-/eslint-plugin-qunit-7.3.1.tgz",
- "integrity": "sha512-L1yutkLqCgr70ZmMAbBKPvUOUwhKryZ0RaJKOzw72Bmn8no3JNBL9hhbX2aTvfZqYM/wLXIT0nICZiGrV4xVJw==",
- "dev": true,
- "requires": {
- "eslint-utils": "^3.0.0",
- "requireindex": "^1.2.0"
- }
- },
- "eslint-plugin-unicorn": {
- "version": "40.1.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-40.1.0.tgz",
- "integrity": "sha512-y5doK2DF9Sr5AqKEHbHxjFllJ167nKDRU01HDcWyv4Tnmaoe9iNxMrBnaybZvWZUaE3OC5Unu0lNIevYamloig==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.15.7",
- "ci-info": "^3.3.0",
- "clean-regexp": "^1.0.0",
- "eslint-utils": "^3.0.0",
- "esquery": "^1.4.0",
- "indent-string": "^4.0.0",
- "is-builtin-module": "^3.1.0",
- "lodash": "^4.17.21",
- "pluralize": "^8.0.0",
- "read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.5",
- "strip-indent": "^3.0.0"
- }
- },
- "eslint-plugin-vue": {
- "version": "8.7.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz",
- "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==",
- "dev": true,
- "requires": {
- "eslint-utils": "^3.0.0",
- "natural-compare": "^1.4.0",
- "nth-check": "^2.0.1",
- "postcss-selector-parser": "^6.0.9",
- "semver": "^7.3.5",
- "vue-eslint-parser": "^8.0.1"
- }
- },
- "eslint-plugin-wdio": {
- "version": "7.21.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-wdio/-/eslint-plugin-wdio-7.21.0.tgz",
- "integrity": "sha512-JPBUHGNZTMzo/+tDM/E+Sos44mE2P7B3/03lPUXrbfuhJfqN/1GyxslHwORqXbbpZl6e5reoQQhVOAemELxgrQ==",
- "dev": true
- },
- "eslint-plugin-yml": {
- "version": "0.13.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.13.0.tgz",
- "integrity": "sha512-rZvdnhe28jIbgSIZo3qYqkl9hKslyTDfMwqIGDzz873gxghzBw0yeFG+P7sMfOkFfpqwJzZy3IKe2cIiCp4FrA==",
- "dev": true,
- "requires": {
- "debug": "^4.3.2",
- "lodash": "^4.17.21",
- "natural-compare": "^1.4.0",
- "yaml-eslint-parser": "^0.5.0"
- }
- },
- "eslint-scope": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
- "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
- "dev": true,
- "requires": {
- "esrecurse": "^4.3.0",
- "estraverse": "^5.2.0"
- }
- },
- "eslint-utils": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz",
- "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^2.0.0"
- },
- "dependencies": {
- "eslint-visitor-keys": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
- "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
- "dev": true
- }
- }
- },
- "eslint-visitor-keys": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
- "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
- "dev": true
- },
- "espree": {
- "version": "9.4.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz",
- "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==",
- "dev": true,
- "requires": {
- "acorn": "^8.8.0",
- "acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^3.3.0"
- }
- },
- "esprima": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
- "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
- },
- "esquery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
- "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
- "dev": true,
- "requires": {
- "estraverse": "^5.1.0"
- }
- },
- "esrecurse": {
- "version": "4.3.0",
- "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
- "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
- "dev": true,
- "requires": {
- "estraverse": "^5.2.0"
- }
- },
- "estraverse": {
- "version": "5.3.0",
- "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
- "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
- "dev": true
- },
- "esutils": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true
- },
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
- },
- "express": {
- "version": "4.18.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.18.2.tgz",
- "integrity": "sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==",
- "requires": {
- "accepts": "~1.3.8",
- "array-flatten": "1.1.1",
- "body-parser": "1.20.1",
- "content-disposition": "0.5.4",
- "content-type": "~1.0.4",
- "cookie": "0.5.0",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "2.0.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.2.0",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.7",
- "qs": "6.11.0",
- "range-parser": "~1.2.1",
- "safe-buffer": "5.2.1",
- "send": "0.18.0",
- "serve-static": "1.15.0",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "type-is": "~1.6.18",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "fast-levenshtein": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
- "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
- "dev": true
- },
- "fastq": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz",
- "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==",
- "dev": true,
- "requires": {
- "reusify": "^1.0.4"
- }
- },
- "file-entry-cache": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
- "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
- "dev": true,
- "requires": {
- "flat-cache": "^3.0.4"
- }
- },
- "file-uri-to-path": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz",
- "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==",
- "optional": true
- },
- "fill-range": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
- "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
- "dev": true,
- "requires": {
- "to-regex-range": "^5.0.1"
- }
- },
- "finalhandler": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
- "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "2.4.1",
- "parseurl": "~1.3.3",
- "statuses": "2.0.1",
- "unpipe": "~1.0.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": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- }
- }
- },
- "find-cache-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz",
- "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==",
- "dev": true,
- "requires": {
- "commondir": "^1.0.1",
- "make-dir": "^2.0.0",
- "pkg-dir": "^3.0.0"
- }
- },
- "find-up": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
- "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
- "dev": true,
- "requires": {
- "locate-path": "^6.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "flat": {
- "version": "5.0.2",
- "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
- "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
- "dev": true
- },
- "flat-cache": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
- "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
- "dev": true,
- "requires": {
- "flatted": "^3.1.0",
- "rimraf": "^3.0.2"
- }
- },
- "flatted": {
- "version": "3.2.7",
- "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
- "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
- "dev": true
- },
- "foreground-child": {
- "version": "1.5.6",
- "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-1.5.6.tgz",
- "integrity": "sha512-3TOY+4TKV0Ml83PXJQY+JFQaHNV38lzQDIzzXYg1kWdBLenGgoZhAs0CKgzI31vi2pWEpQMq/Yi4bpKwCPkw7g==",
- "dev": true,
- "requires": {
- "cross-spawn": "^4",
- "signal-exit": "^3.0.0"
- },
- "dependencies": {
- "cross-spawn": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-4.0.2.tgz",
- "integrity": "sha512-yAXz/pA1tD8Gtg2S98Ekf/sewp3Lcp3YoFKJ4Hkp5h5yLWnKVTDU0kwjKJ8NDCYcfTLfyGkzTikst+jWypT1iA==",
- "dev": true,
- "requires": {
- "lru-cache": "^4.0.1",
- "which": "^1.2.9"
- }
- },
- "lru-cache": {
- "version": "4.1.5",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
- "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
- "dev": true,
- "requires": {
- "pseudomap": "^1.0.2",
- "yallist": "^2.1.2"
- }
- },
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "yallist": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
- "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
- "dev": true
- }
- }
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="
- },
- "form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- },
- "forwarded": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
- "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
- },
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
- },
- "fs-minipass": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
- "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
- "requires": {
- "minipass": "^2.6.0"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
- "dev": true
- },
- "fsevents": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
- "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
- "dev": true,
- "optional": true
- },
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
- },
- "function-schemata": {
- "version": "file:executors/javascript/function-schemata",
- "requires": {
- "ajv": "8.6.2",
- "avro-js": "1.11.1",
- "benchmark": "2.1.4",
- "eslint": "8.31.0",
- "eslint-config-wikimedia": "0.22.1",
- "eslint-plugin-unicorn": "^41.0.0",
- "eslint-plugin-yml": "^0.14.0",
- "nyc": "14.1.1",
- "qunit": "2.18.2",
- "semver": "^7.3.8",
- "yaml": "1.10.0"
- },
- "dependencies": {
- "ajv": {
- "version": "8.6.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.2.tgz",
- "integrity": "sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
- "eslint-plugin-unicorn": {
- "version": "41.0.1",
- "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-41.0.1.tgz",
- "integrity": "sha512-gF5vo2dIj0YdNMQ/IMegiBkQdQ22GBFFVpdkJP+0og3w7XD4ypea0xQVRv6iofkLVR2w0phAdikcnU01ybd4Ow==",
- "dev": true,
- "requires": {
- "@babel/helper-validator-identifier": "^7.15.7",
- "ci-info": "^3.3.0",
- "clean-regexp": "^1.0.0",
- "eslint-utils": "^3.0.0",
- "esquery": "^1.4.0",
- "indent-string": "^4.0.0",
- "is-builtin-module": "^3.1.0",
- "lodash": "^4.17.21",
- "pluralize": "^8.0.0",
- "read-pkg-up": "^7.0.1",
- "regexp-tree": "^0.1.24",
- "safe-regex": "^2.1.1",
- "semver": "^7.3.5",
- "strip-indent": "^3.0.0"
- }
- },
- "eslint-plugin-yml": {
- "version": "0.14.0",
- "resolved": "https://registry.npmjs.org/eslint-plugin-yml/-/eslint-plugin-yml-0.14.0.tgz",
- "integrity": "sha512-+0+bBV/07txENbxfrHF9olGoLCHez64vmnOmjWOoLwmXOwfdaSRleBSPIi4nWQs7WwX8lm/fSLadOjbVEcsXQQ==",
- "dev": true,
- "requires": {
- "debug": "^4.3.2",
- "lodash": "^4.17.21",
- "natural-compare": "^1.4.0",
- "yaml-eslint-parser": "^0.5.0"
- }
- }
- }
- },
- "gelf-stream": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/gelf-stream/-/gelf-stream-1.1.1.tgz",
- "integrity": "sha512-kCzCfI6DJ8+aaDhwMcsNm2l6CsBj6y4Is6CCxH2W9sYnZGcXg9WmJ/iZMoJVO6uTwTRL7dbIioAS8lCuGUXSFA==",
- "requires": {
- "gelfling": "^0.3.0"
- }
- },
- "gelfling": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/gelfling/-/gelfling-0.3.1.tgz",
- "integrity": "sha512-vli3D2RYpLW6XhryNrv7HMjFNbj+ks/CCVDjokxOtZ+p6QYRadj8Zc0ps+LolSsh/I97XO0OduP/ShOej08clA=="
- },
- "get-caller-file": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
- "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
- },
- "get-func-name": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz",
- "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==",
- "dev": true
- },
- "get-intrinsic": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz",
- "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==",
- "requires": {
- "function-bind": "^1.1.1",
- "has": "^1.0.3",
- "has-symbols": "^1.0.3"
- }
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "glob": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
- "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "glob-parent": {
- "version": "6.0.2",
- "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
- "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
- "dev": true,
- "requires": {
- "is-glob": "^4.0.3"
- }
- },
- "globals": {
- "version": "13.19.0",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.19.0.tgz",
- "integrity": "sha512-dkQ957uSRWHw7CFXLUtUHQI3g3aWApYhfNR2O6jn/907riyTYKVBmxYVROkBcY614FSSeSJh7Xm7SrUWCxvJMQ==",
- "dev": true,
- "requires": {
- "type-fest": "^0.20.2"
- }
- },
- "globalyzer": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/globalyzer/-/globalyzer-0.1.0.tgz",
- "integrity": "sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==",
- "dev": true
- },
- "globrex": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz",
- "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==",
- "dev": true
- },
- "graceful-fs": {
- "version": "4.2.10",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
- "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
- "dev": true
- },
- "grapheme-splitter": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz",
- "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
- "dev": true
- },
- "growl": {
- "version": "1.10.5",
- "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
- "dev": true
- },
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q=="
- },
- "har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "requires": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- }
- },
- "has": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
- "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
- "requires": {
- "function-bind": "^1.1.1"
- }
- },
- "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
- },
- "has-symbols": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
- "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
- },
- "hasha": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/hasha/-/hasha-3.0.0.tgz",
- "integrity": "sha512-w0Kz8lJFBoyaurBiNrIvxPqr/gJ6fOfSkpAPOepN3oECqGJag37xPbOv57izi/KP8auHgNYxn5fXtAb+1LsJ6w==",
- "dev": true,
- "requires": {
- "is-stream": "^1.0.1"
- }
- },
- "hat": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/hat/-/hat-0.0.3.tgz",
- "integrity": "sha512-zpImx2GoKXy42fVDSEad2BPKuSQdLcqsCYa48K3zHSzM/ugWuYjLDr8IXxpVuL7uCLHw56eaiLxCRthhOzf5ug=="
- },
- "he": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
- "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
- "dev": true
- },
- "heapdump": {
- "version": "0.3.15",
- "resolved": "https://registry.npmjs.org/heapdump/-/heapdump-0.3.15.tgz",
- "integrity": "sha512-n8aSFscI9r3gfhOcAECAtXFaQ1uy4QSke6bnaL+iymYZ/dWs9cqDqHM+rALfsHUwukUbxsdlECZ0pKmJdQ/4OA==",
- "optional": true,
- "requires": {
- "nan": "^2.13.2"
- }
- },
- "hosted-git-info": {
- "version": "2.8.9",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz",
- "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==",
- "dev": true
- },
- "hot-shots": {
- "version": "6.8.7",
- "resolved": "https://registry.npmjs.org/hot-shots/-/hot-shots-6.8.7.tgz",
- "integrity": "sha512-XH8iezBSZgVw2jegu96pUfF1Zv0VZ/iXjb7L5yE3F7mn7/bdhf4qeniXjO0wQWeefe433rhOsazNKLxM+XMI9w==",
- "requires": {
- "unix-dgram": "2.0.x"
- }
- },
- "html-escaper": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
- "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
- "dev": true
- },
- "http-errors": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
- "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "requires": {
- "depd": "2.0.0",
- "inherits": "2.0.4",
- "setprototypeof": "1.2.0",
- "statuses": "2.0.1",
- "toidentifier": "1.0.1"
- }
- },
- "http-shutdown": {
- "version": "1.2.2",
- "resolved": "https://registry.npmjs.org/http-shutdown/-/http-shutdown-1.2.2.tgz",
- "integrity": "sha512-S9wWkJ/VSY9/k4qcjG318bqJNruzE4HySUhFYknwmu6LBP97KLLfwNf+n4V1BHurvFNkSKLFnK/RsuUnRTf9Vw=="
- },
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- }
- },
- "iconv-lite": {
- "version": "0.4.24",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
- "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- },
- "ignore": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
- "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
- "dev": true
- },
- "import-fresh": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
- "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
- "dev": true,
- "requires": {
- "parent-module": "^1.0.0",
- "resolve-from": "^4.0.0"
- }
- },
- "imurmurhash": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
- "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
- "dev": true
- },
- "indent-string": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
- "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
- "dev": true
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
- "devOptional": true,
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "ipaddr.js": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
- "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
- },
- "is-arrayish": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
- "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
- "dev": true
- },
- "is-binary-path": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
- "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
- "dev": true,
- "requires": {
- "binary-extensions": "^2.0.0"
- }
- },
- "is-builtin-module": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz",
- "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==",
- "dev": true,
- "requires": {
- "builtin-modules": "^3.3.0"
- }
- },
- "is-core-module": {
- "version": "2.10.0",
- "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
- "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
- "dev": true,
- "requires": {
- "has": "^1.0.3"
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
- "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": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
- "dev": true
- },
- "is-glob": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
- "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
- "dev": true,
- "requires": {
- "is-extglob": "^2.1.1"
- }
- },
- "is-number": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
- "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
- "dev": true
- },
- "is-path-inside": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz",
- "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==",
- "dev": true
- },
- "is-plain-obj": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
- "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
- "dev": true
- },
- "is-stream": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
- "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
- "dev": true
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="
- },
- "is-unicode-supported": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
- "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
- "dev": true
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
- "dev": true
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
- },
- "istanbul-lib-coverage": {
- "version": "2.0.5",
- "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz",
- "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==",
- "dev": true
- },
- "istanbul-lib-hook": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz",
- "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==",
- "dev": true,
- "requires": {
- "append-transform": "^1.0.0"
- }
- },
- "istanbul-lib-instrument": {
- "version": "3.3.0",
- "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz",
- "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==",
- "dev": true,
- "requires": {
- "@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"
- },
- "dependencies": {
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
- "dev": true
- }
- }
- },
- "istanbul-lib-report": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz",
- "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==",
- "dev": true,
- "requires": {
- "istanbul-lib-coverage": "^2.0.5",
- "make-dir": "^2.1.0",
- "supports-color": "^6.1.0"
- },
- "dependencies": {
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
- "dev": true
- },
- "supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "istanbul-lib-source-maps": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz",
- "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==",
- "dev": true,
- "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"
- },
- "dependencies": {
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "istanbul-reports": {
- "version": "2.2.7",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz",
- "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==",
- "dev": true,
- "requires": {
- "html-escaper": "^2.0.0"
- }
- },
- "js-sdsl": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.2.0.tgz",
- "integrity": "sha512-dyBIzQBDkCqCu+0upx25Y2jGdbTGxE9fshMsCdK0ViOongpV+n5tXRcZY9v7CaVQ79AGS9KA1KHtojxiM7aXSQ==",
- "dev": true
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
- "dev": true
- },
- "js-yaml": {
- "version": "3.14.1",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
- "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
- "requires": {
- "argparse": "^1.0.7",
- "esprima": "^4.0.0"
- }
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="
- },
- "jsdoc-type-pratt-parser": {
- "version": "2.2.5",
- "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-2.2.5.tgz",
- "integrity": "sha512-2a6eRxSxp1BW040hFvaJxhsCMI9lT8QB8t14t+NY5tC5rckIR0U9cr2tjOeaFirmEOy6MHvmJnY7zTBHq431Lw==",
- "dev": true
- },
- "jsesc": {
- "version": "2.5.2",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
- "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
- "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",
- "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==",
- "dev": true
- },
- "json-parse-even-better-errors": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
- "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
- "dev": true
- },
- "json-schema": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
- "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="
- },
- "json-schema-traverse": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
- "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug=="
- },
- "json-stable-stringify-without-jsonify": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
- "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
- "dev": true
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="
- },
- "jsprim": {
- "version": "1.4.2",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
- "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.4.0",
- "verror": "1.10.0"
- }
- },
- "just-extend": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz",
- "integrity": "sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==",
- "dev": true
- },
- "kad-fs": {
- "version": "0.0.4",
- "resolved": "https://registry.npmjs.org/kad-fs/-/kad-fs-0.0.4.tgz",
- "integrity": "sha512-VlLY7MuXy+3Tlqn1NJNgNkta6BRposNsJhqqcLv/M5e/rGBAETU33DhlPwV6/RBZKGzylQFkeYaKaoYin+mGZw==",
- "requires": {
- "readable-stream": "^2.0.4"
- }
- },
- "kad-localstorage": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/kad-localstorage/-/kad-localstorage-0.0.7.tgz",
- "integrity": "sha512-3BEFBPa9cbPvW7WvZSTQHy6dSgw7ob7yTqT+eORWrxm4f4fE26BUVorg36KRbg/W+YWEnippuM68ybFyF3heiA==",
- "requires": {
- "dom-storage": "^2.0.1"
- }
- },
- "kad-memstore": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/kad-memstore/-/kad-memstore-0.0.1.tgz",
- "integrity": "sha512-fwGvRXWjaSzMed8iQHkZH41wvaoq+3tIhuIbkqBBYFuuJtWoDWqgCYTADGPqLyaLX4Ct8aP5NtAxCaxk4cfcCg==",
- "requires": {
- "readable-stream": "^2.0.5"
- }
- },
- "levn": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
- "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1",
- "type-check": "~0.4.0"
- }
- },
- "limitation": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/limitation/-/limitation-0.2.3.tgz",
- "integrity": "sha512-IpIBG7WniPI1Og0HYxlo8JRD2E2pExwuol7hjobcNZSYBBxAamPJdV91Q47uw5/KiUKA+We8a33sh6vD1PQ+Yw==",
- "requires": {
- "bluebird": "^3.3.1",
- "readable-stream": "^2.0.5",
- "wikimedia-kad-fork": "^1.3.6"
- }
- },
- "lines-and-columns": {
- "version": "1.2.4",
- "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
- "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
- "dev": true
- },
- "load-json-file": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz",
- "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.2",
- "parse-json": "^4.0.0",
- "pify": "^3.0.0",
- "strip-bom": "^3.0.0"
- },
- "dependencies": {
- "parse-json": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz",
- "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==",
- "dev": true,
- "requires": {
- "error-ex": "^1.3.1",
- "json-parse-better-errors": "^1.0.1"
- }
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true
- }
- }
- },
- "locate-path": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
- "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
- "dev": true,
- "requires": {
- "p-locate": "^5.0.0"
- }
- },
- "lodash": {
- "version": "4.17.21",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
- "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
- },
- "lodash.clone": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clone/-/lodash.clone-4.5.0.tgz",
- "integrity": "sha512-GhrVeweiTD6uTmmn5hV/lzgCQhccwReIVRLHp7LT4SopOjqEZ5BbX8b5WWEtAKasjmy8hR7ZPwsYlxRCku5odg=="
- },
- "lodash.clonedeep": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz",
- "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ=="
- },
- "lodash.flattendeep": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz",
- "integrity": "sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ==",
- "dev": true
- },
- "lodash.get": {
- "version": "4.4.2",
- "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
- "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
- "dev": true
- },
- "lodash.memoize": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
- "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
- "dev": true
- },
- "lodash.merge": {
- "version": "4.6.2",
- "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
- "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
- "dev": true
- },
- "log-symbols": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
- "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
- "dev": true,
- "requires": {
- "chalk": "^4.1.0",
- "is-unicode-supported": "^0.1.0"
- }
- },
- "loupe": {
- "version": "2.3.4",
- "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.4.tgz",
- "integrity": "sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==",
- "dev": true,
- "requires": {
- "get-func-name": "^2.0.0"
- }
- },
- "lru-cache": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
- "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "make-dir": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
- "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
- "dev": true,
- "requires": {
- "pify": "^4.0.1",
- "semver": "^5.6.0"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
- },
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
- },
- "merge-source-map": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz",
- "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==",
- "dev": true,
- "requires": {
- "source-map": "^0.6.1"
- }
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
- },
- "mime": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
- "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
- },
- "mime-db": {
- "version": "1.52.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
- "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
- },
- "mime-types": {
- "version": "2.1.35",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
- "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "requires": {
- "mime-db": "1.52.0"
- }
- },
- "min-indent": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
- "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==",
- "dev": true
- },
- "minimatch": {
- "version": "3.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
- "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
- "devOptional": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz",
- "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g=="
- },
- "minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
- "requires": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- },
- "dependencies": {
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- }
- }
- },
- "minizlib": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
- "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
- "requires": {
- "minipass": "^2.9.0"
- }
- },
- "mkdirp": {
- "version": "0.5.6",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
- "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
- "requires": {
- "minimist": "^1.2.6"
- }
- },
- "mocha": {
- "version": "9.2.2",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
- "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
- "dev": true,
- "requires": {
- "@ungap/promise-all-settled": "1.1.2",
- "ansi-colors": "4.1.1",
- "browser-stdout": "1.3.1",
- "chokidar": "3.5.3",
- "debug": "4.3.3",
- "diff": "5.0.0",
- "escape-string-regexp": "4.0.0",
- "find-up": "5.0.0",
- "glob": "7.2.0",
- "growl": "1.10.5",
- "he": "1.2.0",
- "js-yaml": "4.1.0",
- "log-symbols": "4.1.0",
- "minimatch": "4.2.1",
- "ms": "2.1.3",
- "nanoid": "3.3.1",
- "serialize-javascript": "6.0.0",
- "strip-json-comments": "3.1.1",
- "supports-color": "8.1.1",
- "which": "2.0.2",
- "workerpool": "6.2.0",
- "yargs": "16.2.0",
- "yargs-parser": "20.2.4",
- "yargs-unparser": "2.0.0"
- },
- "dependencies": {
- "argparse": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
- "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
- "dev": true
- },
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "dev": true,
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- },
- "dependencies": {
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
- }
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
- "dev": true
- },
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
- "dev": true
- },
- "js-yaml": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
- "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
- "dev": true,
- "requires": {
- "argparse": "^2.0.1"
- }
- },
- "minimatch": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
- "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
- "dev": true,
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "dev": true,
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "supports-color": {
- "version": "8.1.1",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
- "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
- "dev": true
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "dev": true,
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
- },
- "yargs-parser": {
- "version": "20.2.4",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
- "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
- "dev": true
- }
- }
- },
- "mocha-lcov-reporter": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz",
- "integrity": "sha512-/5zI2tW4lq/ft8MGpYQ1nIH6yePPtIzdGeUEwFMKfMRdLfAQ1QW2c68eEJop32tNdN5srHa/E2TzB+erm3YMYA==",
- "dev": true
- },
- "mocha.parallel": {
- "version": "0.15.6",
- "resolved": "https://registry.npmjs.org/mocha.parallel/-/mocha.parallel-0.15.6.tgz",
- "integrity": "sha512-pWph+QieKGjk7cHY2hB78wyKJDOQLyOMDuBLQLrFL7riJb8qbQBlCY3XztFHv0D1d4I1gCpiwFNjd4LhVOXPew==",
- "dev": true,
- "requires": {
- "bluebird": "^2.9.34",
- "semaphore": "^1.0.5"
- },
- "dependencies": {
- "bluebird": {
- "version": "2.11.0",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz",
- "integrity": "sha512-UfFSr22dmHPQqPP9XWHRhq+gWnHCYguQGkXQlbyPtW5qTnhFWA8/iXg765tH0cAjy7l/zPJ1aBTO0g5XgA7kvQ==",
- "dev": true
- }
- }
- },
- "moment": {
- "version": "2.29.4",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.4.tgz",
- "integrity": "sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w==",
- "optional": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
- "msgpack5": {
- "version": "3.6.1",
- "resolved": "https://registry.npmjs.org/msgpack5/-/msgpack5-3.6.1.tgz",
- "integrity": "sha512-VoY2AaoowHZLLKyEb5FRzuhdSzXn5quGjcMKJOJHJPxp9baYZx5t6jiHUhp5aNRlqqlt+5GXQGovMLNKsrm1hg==",
- "requires": {
- "bl": "^1.2.1",
- "inherits": "^2.0.3",
- "readable-stream": "^2.3.3",
- "safe-buffer": "^5.1.1"
- }
- },
- "mv": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/mv/-/mv-2.1.1.tgz",
- "integrity": "sha512-at/ZndSy3xEGJ8i0ygALh8ru9qy7gWW1cmkaqBN29JmMlIvM//MEO9y1sk/avxuwnPcfhkejkLsuPxH81BrkSg==",
- "optional": true,
- "requires": {
- "mkdirp": "~0.5.1",
- "ncp": "~2.0.0",
- "rimraf": "~2.4.0"
- },
- "dependencies": {
- "glob": {
- "version": "6.0.4",
- "resolved": "https://registry.npmjs.org/glob/-/glob-6.0.4.tgz",
- "integrity": "sha512-MKZeRNyYZAVVVG1oZeLaWie1uweH40m9AZwIwxyPbTSX4hHrVYSzLg0Ro5Z5R7XKkIX+Cc6oD1rqeDJnwsB8/A==",
- "optional": true,
- "requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "rimraf": {
- "version": "2.4.5",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.4.5.tgz",
- "integrity": "sha512-J5xnxTyqaiw06JjMftq7L9ouA448dw/E7dKghkP9WpKNuwmARNNg+Gk8/u5ryb9N/Yo2+z3MCwuqFK/+qPOPfQ==",
- "optional": true,
- "requires": {
- "glob": "^6.0.1"
- }
- }
- }
- },
- "nan": {
- "version": "2.17.0",
- "resolved": "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz",
- "integrity": "sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==",
- "optional": true
- },
- "nanoid": {
- "version": "3.3.1",
- "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
- "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
- "dev": true
- },
- "natural-compare": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
- "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
- "dev": true
- },
- "ncp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ncp/-/ncp-2.0.0.tgz",
- "integrity": "sha512-zIdGUrPRFTUELUvr3Gmc7KZ2Sw/h1PiVM0Af/oHB6zgnV1ikqSfRk+TOufi79aHYCW3NiOXmr1BP5nWbzojLaA==",
- "optional": true
- },
- "negotiator": {
- "version": "0.6.3",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
- "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
- },
- "nested-error-stacks": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.1.tgz",
- "integrity": "sha512-9iN1ka/9zmX1ZvLV9ewJYEk9h7RyRRtqdK0woXcqohu8EWIerfPUjYJPg0ULy0UqP7cslmdGc8xKDJcojlKiaw==",
- "dev": true
- },
- "nise": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz",
- "integrity": "sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.7.0",
- "@sinonjs/fake-timers": "^6.0.0",
- "@sinonjs/text-encoding": "^0.7.1",
- "just-extend": "^4.0.2",
- "path-to-regexp": "^1.7.0"
- },
- "dependencies": {
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==",
- "dev": true
- },
- "path-to-regexp": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
- "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
- "dev": true,
- "requires": {
- "isarray": "0.0.1"
- }
- }
- }
- },
- "node-fetch": {
- "version": "2.6.7",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
- "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
- "dev": true,
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "node-releases": {
- "version": "2.0.6",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz",
- "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==",
- "dev": true
- },
- "node-watch": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/node-watch/-/node-watch-0.7.3.tgz",
- "integrity": "sha512-3l4E8uMPY1HdMMryPRUAl+oIHtXtyiTlIiESNSVSNxcPfzAFzeTbXFQkZfAwBbo0B1qMSG8nUABx+Gd+YrbKrQ==",
- "dev": true
- },
- "normalize-package-data": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
- "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==",
- "dev": true,
- "requires": {
- "hosted-git-info": "^2.1.4",
- "resolve": "^1.10.0",
- "semver": "2 || 3 || 4 || 5",
- "validate-npm-package-license": "^3.0.1"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
- "dev": true
- }
- }
- },
- "normalize-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
- "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
- "dev": true
- },
- "nth-check": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
- "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
- "requires": {
- "boolbase": "^1.0.0"
- }
- },
- "nyc": {
- "version": "14.1.1",
- "resolved": "https://registry.npmjs.org/nyc/-/nyc-14.1.1.tgz",
- "integrity": "sha512-OI0vm6ZGUnoGZv/tLdZ2esSVzDwUC88SNs+6JoSOMVxA+gKMB8Tk7jBwgemLx4O40lhhvZCVw1C+OYLOBOPXWw==",
- "dev": true,
- "requires": {
- "archy": "^1.0.0",
- "caching-transform": "^3.0.2",
- "convert-source-map": "^1.6.0",
- "cp-file": "^6.2.0",
- "find-cache-dir": "^2.1.0",
- "find-up": "^3.0.0",
- "foreground-child": "^1.5.6",
- "glob": "^7.1.3",
- "istanbul-lib-coverage": "^2.0.5",
- "istanbul-lib-hook": "^2.0.7",
- "istanbul-lib-instrument": "^3.3.0",
- "istanbul-lib-report": "^2.0.8",
- "istanbul-lib-source-maps": "^3.0.6",
- "istanbul-reports": "^2.2.4",
- "js-yaml": "^3.13.1",
- "make-dir": "^2.1.0",
- "merge-source-map": "^1.1.0",
- "resolve-from": "^4.0.0",
- "rimraf": "^2.6.3",
- "signal-exit": "^3.0.2",
- "spawn-wrap": "^1.4.2",
- "test-exclude": "^5.2.3",
- "uuid": "^3.3.2",
- "yargs": "^13.2.2",
- "yargs-parser": "^13.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- }
- }
- },
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
- },
- "object-inspect": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
- "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
- },
- "on-finished": {
- "version": "2.4.1",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
- "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "on-headers": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz",
- "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
- "devOptional": true,
- "requires": {
- "wrappy": "1"
- }
- },
- "openapi-schema-validator": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/openapi-schema-validator/-/openapi-schema-validator-3.0.3.tgz",
- "integrity": "sha512-KKpeNEvAmpy6B2JCfyrM4yWjL6vggDCVbBoR8Yfkj0Jltc6PCW+dBbcg+1yrTCuDv80qBQJ6w0ejA71DlOFegA==",
- "dev": true,
- "requires": {
- "ajv": "^6.5.2",
- "lodash.merge": "^4.6.1",
- "openapi-types": "1.3.4",
- "swagger-schema-official": "2.0.0-bab6bed"
- }
- },
- "openapi-types": {
- "version": "1.3.4",
- "resolved": "https://registry.npmjs.org/openapi-types/-/openapi-types-1.3.4.tgz",
- "integrity": "sha512-h8rADpW3k/wepLdERKF0VKMAPdoFYNQCLGPmc/f8sgQ2dxUy+7sY4WAX2XDUDjhKTjbJVbxxofLkzy7f1/tE4g==",
- "dev": true
- },
- "optionator": {
- "version": "0.9.1",
- "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
- "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
- "dev": true,
- "requires": {
- "deep-is": "^0.1.3",
- "fast-levenshtein": "^2.0.6",
- "levn": "^0.4.1",
- "prelude-ls": "^1.2.1",
- "type-check": "^0.4.0",
- "word-wrap": "^1.2.3"
- }
- },
- "os-homedir": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha512-B5JU3cabzk8c67mRRd3ECmROafjYMXbuzlwtqdM8IbS8ktlTix8aFGb2bAGKrSRIlnfKwovGUUr72JUPyOb6kQ==",
- "dev": true
- },
- "p-limit": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
- "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
- "dev": true,
- "requires": {
- "yocto-queue": "^0.1.0"
- }
- },
- "p-locate": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
- "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
- "dev": true,
- "requires": {
- "p-limit": "^3.0.2"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
- },
- "package-hash": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/package-hash/-/package-hash-3.0.0.tgz",
- "integrity": "sha512-lOtmukMDVvtkL84rJHI7dpTYq+0rli8N2wlnqUcBuDWCfVhRUfOmnR9SsoHFMLpACvEV60dX7rd0rFaYDZI+FA==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.15",
- "hasha": "^3.0.0",
- "lodash.flattendeep": "^4.4.0",
- "release-zalgo": "^1.0.0"
- }
- },
- "parent-module": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
- "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
- "dev": true,
- "requires": {
- "callsites": "^3.0.0"
- }
- },
- "parse-json": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
- "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
- "dev": true,
- "requires": {
- "@babel/code-frame": "^7.0.0",
- "error-ex": "^1.3.1",
- "json-parse-even-better-errors": "^2.3.0",
- "lines-and-columns": "^1.1.6"
- }
- },
- "parseurl": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
- "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
- },
- "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
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
- "devOptional": true
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
- "dev": true
- },
- "path-parse": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
- },
- "path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
- },
- "path-type": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz",
- "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==",
- "dev": true,
- "requires": {
- "pify": "^3.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
- "dev": true
- }
- }
- },
- "pathval": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz",
- "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==",
- "dev": true
- },
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="
- },
- "picocolors": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
- "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==",
- "dev": true
- },
- "picomatch": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
- "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
- "dev": true
- },
- "pidusage": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pidusage/-/pidusage-3.0.0.tgz",
- "integrity": "sha512-8VJLToXhj+RYZGNVw8oxc7dS54iCQXUJ+MDFHezQ/fwF5B8W4OWodAMboc1wb08S/4LiHwAmkT4ohf/d3YPPsw==",
- "requires": {
- "safe-buffer": "^5.2.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- }
- }
- },
- "pify": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
- "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
- "dev": true
- },
- "pkg-dir": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz",
- "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==",
- "dev": true,
- "requires": {
- "find-up": "^3.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true
- }
- }
- },
- "platform": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/platform/-/platform-1.3.6.tgz",
- "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg=="
- },
- "pluralize": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz",
- "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==",
- "dev": true
- },
- "postcss-selector-parser": {
- "version": "6.0.10",
- "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz",
- "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==",
- "dev": true,
- "requires": {
- "cssesc": "^3.0.0",
- "util-deprecate": "^1.0.2"
- }
- },
- "prelude-ls": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
- "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
- "dev": true
- },
- "preq": {
- "version": "0.5.14",
- "resolved": "https://registry.npmjs.org/preq/-/preq-0.5.14.tgz",
- "integrity": "sha512-kuJ5ndEgjs27kTTQ/P2ipPQoHeCJcAI4i97mU3xSjkjx6CsuQOsCe2l5twTGC0SCB5UkzRpmrpXmvN0Ip4ZCxA==",
- "requires": {
- "bluebird": "^3.5.5",
- "request": "^2.88.0",
- "requestretry": "4.0.2"
- }
- },
- "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=="
- },
- "prom-client": {
- "version": "11.5.3",
- "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-11.5.3.tgz",
- "integrity": "sha512-iz22FmTbtkyL2vt0MdDFY+kWof+S9UB/NACxSn2aJcewtw+EERsen0urSkZ2WrHseNdydsvcxCTAnPcSMZZv4Q==",
- "requires": {
- "tdigest": "^0.1.1"
- }
- },
- "proxy-addr": {
- "version": "2.0.7",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
- "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "requires": {
- "forwarded": "0.2.0",
- "ipaddr.js": "1.9.1"
- }
- },
- "pseudomap": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
- "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==",
- "dev": true
- },
- "psl": {
- "version": "1.9.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
- "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag=="
- },
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
- },
- "qs": {
- "version": "6.11.0",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz",
- "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==",
- "requires": {
- "side-channel": "^1.0.4"
- }
- },
- "queue-microtask": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
- "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
- "dev": true
- },
- "qunit": {
- "version": "2.18.2",
- "resolved": "https://registry.npmjs.org/qunit/-/qunit-2.18.2.tgz",
- "integrity": "sha512-Ux+x9pIU38/F+r3jOl35QzGHPPupMifUvhczCqHgzYWX76fCjPg6VqM84ox1D57fhAXHtpS4Jl91EV8gDoCHPg==",
- "dev": true,
- "requires": {
- "commander": "7.2.0",
- "node-watch": "0.7.3",
- "tiny-glob": "0.2.9"
- }
- },
- "ramda": {
- "version": "0.27.2",
- "resolved": "https://registry.npmjs.org/ramda/-/ramda-0.27.2.tgz",
- "integrity": "sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==",
- "dev": true
- },
- "randombytes": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
- "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
- "dev": true,
- "requires": {
- "safe-buffer": "^5.1.0"
- }
- },
- "range-parser": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
- "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
- },
- "raw-body": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
- "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
- "requires": {
- "bytes": "3.1.2",
- "http-errors": "2.0.0",
- "iconv-lite": "0.4.24",
- "unpipe": "1.0.0"
- }
- },
- "read-pkg": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz",
- "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==",
- "dev": true,
- "requires": {
- "@types/normalize-package-data": "^2.4.0",
- "normalize-package-data": "^2.5.0",
- "parse-json": "^5.0.0",
- "type-fest": "^0.6.0"
- },
- "dependencies": {
- "type-fest": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz",
- "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==",
- "dev": true
- }
- }
- },
- "read-pkg-up": {
- "version": "7.0.1",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz",
- "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==",
- "dev": true,
- "requires": {
- "find-up": "^4.1.0",
- "read-pkg": "^5.2.0",
- "type-fest": "^0.8.1"
- },
- "dependencies": {
- "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"
- }
- },
- "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-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.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"
- }
- },
- "type-fest": {
- "version": "0.8.1",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
- "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
- "dev": true
- }
- }
- },
- "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"
- }
- },
- "readdirp": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
- "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
- "dev": true,
- "requires": {
- "picomatch": "^2.2.1"
- }
- },
- "regexp-tree": {
- "version": "0.1.24",
- "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz",
- "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==",
- "dev": true
- },
- "regexpp": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
- "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
- "dev": true
- },
- "regextras": {
- "version": "0.8.0",
- "resolved": "https://registry.npmjs.org/regextras/-/regextras-0.8.0.tgz",
- "integrity": "sha512-k519uI04Z3SaY0fLX843MRXnDeG2+vHOFsyhiPZvNLe7r8rD2YNRjq4BQLZZ0oAr2NrtvZlICsXysGNFPGa3CQ==",
- "dev": true
- },
- "release-zalgo": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz",
- "integrity": "sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA==",
- "dev": true,
- "requires": {
- "es6-error": "^4.0.1"
- }
- },
- "request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- },
- "dependencies": {
- "qs": {
- "version": "6.5.3",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
- "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA=="
- }
- }
- },
- "requestretry": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/requestretry/-/requestretry-4.0.2.tgz",
- "integrity": "sha512-ZGdO1ZXUQAeCB9xOS2keSN501y7T1t0zPOD58jTAOwamt6qkcBMaGdRBHEOMQRnDtT5fn7S99F0dwADUqCmYqg==",
- "requires": {
- "extend": "^3.0.2",
- "lodash": "^4.17.10",
- "when": "^3.7.7"
- }
- },
- "require-directory": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
- "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q=="
- },
- "require-from-string": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
- "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
- },
- "require-main-filename": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
- "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
- "dev": true
- },
- "requireindex": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/requireindex/-/requireindex-1.2.0.tgz",
- "integrity": "sha512-L9jEkOi3ASd9PYit2cwRfyppc9NoABujTP8/5gFcbERmo5jUoAKovIC3fsF17pkTnGsrByysqX+Kxd2OTNI1ww==",
- "dev": true
- },
- "resolve": {
- "version": "1.22.1",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
- "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
- "requires": {
- "is-core-module": "^2.9.0",
- "path-parse": "^1.0.7",
- "supports-preserve-symlinks-flag": "^1.0.0"
- }
- },
- "resolve-from": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
- "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
- "dev": true
- },
- "reusify": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz",
- "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==",
- "dev": true
- },
- "rimraf": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
- "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- },
- "dependencies": {
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
- }
- },
- "run-parallel": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
- "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
- "dev": true,
- "requires": {
- "queue-microtask": "^1.2.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=="
- },
- "safe-json-stringify": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz",
- "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==",
- "optional": true
- },
- "safe-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz",
- "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==",
- "dev": true,
- "requires": {
- "regexp-tree": "~0.1.1"
- }
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "semaphore": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz",
- "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==",
- "dev": true
- },
- "semver": {
- "version": "7.3.8",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
- "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
- "requires": {
- "lru-cache": "^6.0.0"
- }
- },
- "send": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
- "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
- "requires": {
- "debug": "2.6.9",
- "depd": "2.0.0",
- "destroy": "1.2.0",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "2.0.0",
- "mime": "1.6.0",
- "ms": "2.1.3",
- "on-finished": "2.4.1",
- "range-parser": "~1.2.1",
- "statuses": "2.0.1"
- },
- "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"
- },
- "dependencies": {
- "ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
- }
- }
- },
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- }
- }
- },
- "serialize-javascript": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
- "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
- "dev": true,
- "requires": {
- "randombytes": "^2.1.0"
- }
- },
- "serve-static": {
- "version": "1.15.0",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
- "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.3",
- "send": "0.18.0"
- }
- },
- "service-runner": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/service-runner/-/service-runner-3.1.0.tgz",
- "integrity": "sha512-eDUg9iP17zodtkPNhy+LOgjL/hh245s+D0Z5fgeB1ds39qHQzBds8tM4GByGbrU4u7zv0sO0RXlyq/j6Q1kZsA==",
- "requires": {
- "bluebird": "^3.7.2",
- "bunyan": "^1.8.12",
- "bunyan-syslog-udp": "^0.2.0",
- "dnscache": "^1.0.2",
- "gelf-stream": "^1.1.1",
- "heapdump": "^0.3.15",
- "hot-shots": "^6.8.7",
- "js-yaml": "^3.13.1",
- "limitation": "^0.2.3",
- "lodash.clonedeep": "^4.5.0",
- "prom-client": "^11.5.3",
- "semver": "^7.1.2",
- "tar": "^4.4.16",
- "yargs": "^16.2.0"
- },
- "dependencies": {
- "cliui": {
- "version": "7.0.4",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
- "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
- "emoji-regex": {
- "version": "8.0.0",
- "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
- "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
- },
- "is-fullwidth-code-point": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
- "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
- },
- "string-width": {
- "version": "4.2.3",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
- "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
- "requires": {
- "emoji-regex": "^8.0.0",
- "is-fullwidth-code-point": "^3.0.0",
- "strip-ansi": "^6.0.1"
- }
- },
- "wrap-ansi": {
- "version": "7.0.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
- "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
- "requires": {
- "ansi-styles": "^4.0.0",
- "string-width": "^4.1.0",
- "strip-ansi": "^6.0.0"
- }
- },
- "y18n": {
- "version": "5.0.8",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
- "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
- },
- "yargs": {
- "version": "16.2.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
- "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
- "requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
- "require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- }
- },
- "yargs-parser": {
- "version": "20.2.9",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
- "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
- }
- }
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
- "dev": true
- },
- "setprototypeof": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "dev": true,
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
- "dev": true
- },
- "side-channel": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
- "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
- "requires": {
- "call-bind": "^1.0.0",
- "get-intrinsic": "^1.0.2",
- "object-inspect": "^1.9.0"
- }
- },
- "signal-exit": {
- "version": "3.0.7",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
- "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
- "dev": true
- },
- "sinon": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/sinon/-/sinon-10.0.0.tgz",
- "integrity": "sha512-XAn5DxtGVJBlBWYrcYKEhWCz7FLwZGdyvANRyK06419hyEpdT0dMc5A8Vcxg5SCGHc40CsqoKsc1bt1CbJPfNw==",
- "dev": true,
- "requires": {
- "@sinonjs/commons": "^1.8.1",
- "@sinonjs/fake-timers": "^6.0.1",
- "@sinonjs/samsam": "^5.3.1",
- "diff": "^4.0.2",
- "nise": "^4.1.0",
- "supports-color": "^7.1.0"
- },
- "dependencies": {
- "diff": {
- "version": "4.0.2",
- "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
- "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
- "dev": true
- }
- }
- },
- "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
- },
- "spawn-wrap": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-1.4.3.tgz",
- "integrity": "sha512-IgB8md0QW/+tWqcavuFgKYR/qIRvJkRLPJDFaoXtLLUaVcCDK0+HeFTkmQHj3eprcYhc+gOl0aEA1w7qZlYezw==",
- "dev": true,
- "requires": {
- "foreground-child": "^1.5.6",
- "mkdirp": "^0.5.0",
- "os-homedir": "^1.0.1",
- "rimraf": "^2.6.2",
- "signal-exit": "^3.0.2",
- "which": "^1.3.0"
- },
- "dependencies": {
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "spdx-correct": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz",
- "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==",
- "dev": true,
- "requires": {
- "spdx-expression-parse": "^3.0.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-exceptions": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz",
- "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==",
- "dev": true
- },
- "spdx-expression-parse": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz",
- "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==",
- "dev": true,
- "requires": {
- "spdx-exceptions": "^2.1.0",
- "spdx-license-ids": "^3.0.0"
- }
- },
- "spdx-license-ids": {
- "version": "3.0.12",
- "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz",
- "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==",
- "dev": true
- },
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g=="
- },
- "sshpk": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
- "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
- "requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- }
- },
- "statuses": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
- "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
- },
- "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"
- }
- },
- "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"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
- }
- },
- "strip-ansi": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
- "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
- "requires": {
- "ansi-regex": "^5.0.1"
- }
- },
- "strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
- "dev": true
- },
- "strip-indent": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz",
- "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==",
- "dev": true,
- "requires": {
- "min-indent": "^1.0.0"
- }
- },
- "strip-json-comments": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
- "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
- "dev": true
- },
- "supports-color": {
- "version": "7.2.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
- "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
- "requires": {
- "has-flag": "^4.0.0"
- }
- },
- "supports-preserve-symlinks-flag": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true
- },
- "swagger-router": {
- "version": "0.7.4",
- "resolved": "https://registry.npmjs.org/swagger-router/-/swagger-router-0.7.4.tgz",
- "integrity": "sha512-HdKJ4DenOXcaChWKST7oFHvd+kclike9rsFfPt3W9JWVvznofcOWGSivyWJECky3tOlw52jqvCKSQrz1l+1D9w==",
- "requires": {
- "bluebird": "^3.5.2",
- "js-yaml": "^3.12.0",
- "tassembly": "^0.2.3",
- "template-expression-compiler": "^0.1.10",
- "uuid": "^3.3.2"
- }
- },
- "swagger-schema-official": {
- "version": "2.0.0-bab6bed",
- "resolved": "https://registry.npmjs.org/swagger-schema-official/-/swagger-schema-official-2.0.0-bab6bed.tgz",
- "integrity": "sha512-rCC0NWGKr/IJhtRuPq/t37qvZHI/mH4I4sxflVM+qgVe5Z2uOCivzWaVbuioJaB61kvm5UvB7b49E+oBY0M8jA==",
- "dev": true
- },
- "swagger-ui-dist": {
- "version": "3.52.5",
- "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.52.5.tgz",
- "integrity": "sha512-8z18eX8G/jbTXYzyNIaobrnD7PSN7yU/YkSasMmajrXtw0FGS64XjrKn5v37d36qmU3o1xLeuYnktshRr7uIFw=="
- },
- "tar": {
- "version": "4.4.19",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.19.tgz",
- "integrity": "sha512-a20gEsvHnWe0ygBY8JbxoM4w3SJdhc7ZAuxkLqh+nvNQN2IOt0B5lLgM490X5Hl8FF0dl0tOf2ewFYAlIFgzVA==",
- "requires": {
- "chownr": "^1.1.4",
- "fs-minipass": "^1.2.7",
- "minipass": "^2.9.0",
- "minizlib": "^1.3.3",
- "mkdirp": "^0.5.5",
- "safe-buffer": "^5.2.1",
- "yallist": "^3.1.1"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- }
- }
- },
- "tassembly": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/tassembly/-/tassembly-0.2.3.tgz",
- "integrity": "sha512-rpYD3bbgITu9vxxhRgMDANK3wMUw4WcQ9PJDLJnDJGs13rbHHnfuPB0sVmkTOn0c01BIUe7xZdDcF2IzlgMEHw=="
- },
- "tdigest": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz",
- "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==",
- "requires": {
- "bintrees": "1.0.2"
- }
- },
- "template-expression-compiler": {
- "version": "0.1.10",
- "resolved": "https://registry.npmjs.org/template-expression-compiler/-/template-expression-compiler-0.1.10.tgz",
- "integrity": "sha512-AuGyxkl8I+GhmYqt4JzsxZWIMgB1TnuCQCkRdOhHlZ612peP+yoXcoYVdBJWP/NYAFwmUUliBjuVwgqog0y5KQ=="
- },
- "test-exclude": {
- "version": "5.2.3",
- "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.3.tgz",
- "integrity": "sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g==",
- "dev": true,
- "requires": {
- "glob": "^7.1.3",
- "minimatch": "^3.0.4",
- "read-pkg-up": "^4.0.0",
- "require-main-filename": "^2.0.0"
- },
- "dependencies": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "glob": {
- "version": "7.2.3",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
- "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.1.1",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true
- },
- "read-pkg": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz",
- "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==",
- "dev": true,
- "requires": {
- "load-json-file": "^4.0.0",
- "normalize-package-data": "^2.3.2",
- "path-type": "^3.0.0"
- }
- },
- "read-pkg-up": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz",
- "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==",
- "dev": true,
- "requires": {
- "find-up": "^3.0.0",
- "read-pkg": "^3.0.0"
- }
- }
- }
- },
- "text-table": {
- "version": "0.2.0",
- "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
- "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
- "dev": true
- },
- "tiny-glob": {
- "version": "0.2.9",
- "resolved": "https://registry.npmjs.org/tiny-glob/-/tiny-glob-0.2.9.tgz",
- "integrity": "sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==",
- "dev": true,
- "requires": {
- "globalyzer": "0.1.0",
- "globrex": "^0.1.2"
- }
- },
- "to-fast-properties": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
- "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
- "dev": true
- },
- "to-regex-range": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
- "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
- "dev": true,
- "requires": {
- "is-number": "^7.0.0"
- }
- },
- "toidentifier": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
- "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
- },
- "tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "requires": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- }
- },
- "tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==",
- "dev": true
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="
- },
- "type-check": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
- "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
- "dev": true,
- "requires": {
- "prelude-ls": "^1.2.1"
- }
- },
- "type-detect": {
- "version": "4.0.8",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
- "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
- "dev": true
- },
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true
- },
- "type-is": {
- "version": "1.6.18",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
- "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.24"
- }
- },
- "underscore": {
- "version": "1.13.6",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz",
- "integrity": "sha512-+A5Sja4HP1M08MaXya7p5LvjuM7K6q/2EaC0+iovj/wOcMsTzMvDFbasi/oSapiwOlt252IqsKqPjCl7huKS0A=="
- },
- "unix-dgram": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/unix-dgram/-/unix-dgram-2.0.4.tgz",
- "integrity": "sha512-7tpK6x7ls7J7pDrrAU63h93R0dVhRbPwiRRCawR10cl+2e1VOvF3bHlVJc6WI1dl/8qk5He673QU+Ogv7bPNaw==",
- "optional": true,
- "requires": {
- "bindings": "^1.3.0",
- "nan": "^2.13.2"
- }
- },
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
- },
- "upath": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
- "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==",
- "dev": true
- },
- "update-browserslist-db": {
- "version": "1.0.10",
- "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz",
- "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==",
- "dev": true,
- "requires": {
- "escalade": "^3.1.1",
- "picocolors": "^1.0.0"
- }
- },
- "uri-js": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
- "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
- },
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
- },
- "validate-npm-package-license": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz",
- "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==",
- "dev": true,
- "requires": {
- "spdx-correct": "^3.0.0",
- "spdx-expression-parse": "^3.0.0"
- }
- },
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- },
- "dependencies": {
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="
- }
- }
- },
- "vue-eslint-parser": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz",
- "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==",
- "dev": true,
- "requires": {
- "debug": "^4.3.2",
- "eslint-scope": "^7.0.0",
- "eslint-visitor-keys": "^3.1.0",
- "espree": "^9.0.0",
- "esquery": "^1.4.0",
- "lodash": "^4.17.21",
- "semver": "^7.3.5"
- }
- },
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==",
- "dev": true
- },
- "whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==",
- "dev": true,
- "requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
- }
- },
- "when": {
- "version": "3.7.8",
- "resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
- "integrity": "sha512-5cZ7mecD3eYcMiCH4wtRPA5iFJZ50BJYDfckI5RRpQiktMiYTcn0ccLTZOvcbBume+1304fQztxeNzNS9Gvrnw=="
- },
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "dev": true,
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-module": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
- "integrity": "sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q==",
- "dev": true
- },
- "wikimedia-kad-fork": {
- "version": "1.3.6",
- "resolved": "https://registry.npmjs.org/wikimedia-kad-fork/-/wikimedia-kad-fork-1.3.6.tgz",
- "integrity": "sha512-m+IxFN4JatoQPRo0N46xMh7tR6FSznb/ithIchAy7Wg9mrkc4/bE/3BhlJS410quFJFrJp8lJJp93g4uTbj4lA==",
- "requires": {
- "async": "^0.9.0",
- "clarinet": "^0.11.0",
- "colors": "^1.0.3",
- "hat": "0.0.3",
- "kad-fs": "0.0.4",
- "kad-localstorage": "0.0.7",
- "kad-memstore": "0.0.1",
- "lodash": "^4.17.11",
- "ms": "^0.7.0",
- "msgpack5": "^3.3.0"
- },
- "dependencies": {
- "ms": {
- "version": "0.7.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.3.tgz",
- "integrity": "sha512-lrKNzMWqQZgwJahtrtrM+9NgOoDUveDrVmm5aGXrf3BdtL0mq7X6IVzoZaw+TfNti29eHd1/8GI+h45K5cQ6/w=="
- }
- }
- },
- "word-wrap": {
- "version": "1.2.3",
- "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
- "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
- "dev": true
- },
- "workerpool": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
- "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==",
- "dev": true
- },
- "wrap-ansi": {
- "version": "5.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
- "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.0",
- "string-width": "^3.0.0",
- "strip-ansi": "^5.0.0"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz",
- "integrity": "sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g==",
- "dev": true
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "dev": true,
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "dev": true,
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==",
- "dev": true
- },
- "strip-ansi": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
- "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
- "dev": true,
- "requires": {
- "ansi-regex": "^4.1.0"
- }
- }
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
- "devOptional": true
- },
- "write-file-atomic": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
- "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.11",
- "imurmurhash": "^0.1.4",
- "signal-exit": "^3.0.2"
- }
- },
- "ws": {
- "version": "8.10.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-8.10.0.tgz",
- "integrity": "sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==",
- "requires": {}
- },
- "y18n": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
- "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
- "dev": true
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "yaml": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.0.tgz",
- "integrity": "sha512-yr2icI4glYaNG+KWONODapy2/jDdMSDnrONSjblABjD9B4Z5LgiircSt8m8sRZFNi08kG9Sm0uSHtEmP3zaEGg=="
- },
- "yaml-eslint-parser": {
- "version": "0.5.0",
- "resolved": "https://registry.npmjs.org/yaml-eslint-parser/-/yaml-eslint-parser-0.5.0.tgz",
- "integrity": "sha512-nJeyLA3YHAzhBTZbRAbu3W6xrSCucyxExmA+ZDtEdUFpGllxAZpto2Zxo2IG0r0eiuEiBM4e+wiAdxTziTq94g==",
- "dev": true,
- "requires": {
- "eslint-visitor-keys": "^3.0.0",
- "lodash": "^4.17.21",
- "yaml": "^1.10.2"
- },
- "dependencies": {
- "yaml": {
- "version": "1.10.2",
- "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
- "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
- "dev": true
- }
- }
- },
- "yargs": {
- "version": "13.3.2",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
- "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
- "dev": true,
- "requires": {
- "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": {
- "find-up": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
- "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "locate-path": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
- "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
- "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
- "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "path-exists": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true
- }
- }
- },
- "yargs-parser": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
- "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
- },
- "yargs-unparser": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
- "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
- "dev": true,
- "requires": {
- "camelcase": "^6.0.0",
- "decamelize": "^4.0.0",
- "flat": "^5.0.2",
- "is-plain-obj": "^2.1.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
- "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
- "dev": true
- },
- "decamelize": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
- "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
- "dev": true
- }
- }
- },
- "yocto-queue": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
- "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
- "dev": true
- }
- }
-}
diff --git a/package.json b/package.json
deleted file mode 100644
index 73dcdc1..0000000
--- a/package.json
+++ /dev/null
@@ -1,71 +0,0 @@
-{
- "name": "function-evaluator",
- "version": "0.0.1",
- "description": "A Wikifunctions service to evaluate WikiLambda functions",
- "main": "./app.js",
- "scripts": {
- "start": "service-runner",
- "test": "npm run lint && npm run test:nolint",
- "test:nolint": "PREQ_CONNECT_TIMEOUT=15 nyc --reporter text-summary _mocha --recursive --timeout 15000",
- "test:python3-all": "npm run lint && npm run test:python3-all:nolint",
- "test:python3-all:nolint": "PREQ_CONNECT_TIMEOUT=15 nyc --reporter text-summary _mocha --timeout 15000 test/features/v1/python3-all-test.js",
- "test:javascript-all": "npm run lint && npm run test:javascript-all:nolint",
- "test:javascript-all:nolint": "PREQ_CONNECT_TIMEOUT=15 nyc --reporter text-summary _mocha --timeout 15000 test/features/v1/javascript-all-test.js",
- "lint": "eslint --max-warnings 2 .",
- "lint:fix": "eslint --fix .",
- "docker-start": "service-runner docker-start",
- "docker-test": "service-runner docker-test",
- "test-build": "service-runner docker-test && service-runner build --deploy-repo --force",
- "coverage": "PREQ_CONNECT_TIMEOUT=15 nyc --reporter=lcov --reporter=text-summary _mocha --recursive --timeout 15000 -i -g python"
- },
- "repository": {
- "type": "git",
- "url": "ssh://gerrit.wikimedia.org:29418/mediawiki/services/function-evaluator"
- },
- "keywords": [
- "lambda function",
- "Wikifunctions",
- "Abstract Wikipedia"
- ],
- "author": "Abstract Wikipedia Team <wikitech-l@lists.wikimedia.org>",
- "contributors": [],
- "license": "MIT",
- "bugs": {
- "url": "https://phabricator.wikimedia.org/tag/abstract_wikipedia/"
- },
- "homepage": "http://meta.wikimedia.org/wiki/Abstract%20Wikipedia",
- "dependencies": {
- "body-parser": "^1.19.0",
- "bunyan": "^1.8.15",
- "compression": "^1.7.4",
- "domino": "^2.1.6",
- "express": "^4.17.1",
- "function-schemata": "file:./executors/javascript/function-schemata",
- "http-shutdown": "^1.2.2",
- "js-yaml": "^3.14.1",
- "pidusage": "3.0.0",
- "preq": "^0.5.14",
- "service-runner": "^3.1.0",
- "swagger-router": "^0.7.4",
- "swagger-ui-dist": "^3.51.1",
- "uuid": "^3.4.0",
- "ws": "^8.7.0"
- },
- "devDependencies": {
- "ajv": "^6.5.4",
- "bluebird": "^3.7.2",
- "chai": "^4.3.4",
- "eslint": "8.31.0",
- "eslint-config-wikimedia": "0.22.1",
- "eslint-plugin-unicorn": "40.1.0",
- "eslint-plugin-yml": "0.13.0",
- "extend": "^3.0.2",
- "mocha": "9.2.2",
- "mocha-lcov-reporter": "^1.3.0",
- "mocha.parallel": "^0.15.6",
- "node-fetch": "2.6.7",
- "nyc": "^14.1.1",
- "openapi-schema-validator": "^3.0.3",
- "sinon": "10.0.0"
- }
-}
diff --git a/routes/empty.js.template b/routes/empty.js.template
deleted file mode 100644
index 03d10b7..0000000
--- a/routes/empty.js.template
+++ /dev/null
@@ -1,38 +0,0 @@
-'use strict';
-
-
-var BBPromise = require('bluebird');
-var sUtil = require('../lib/util');
-
-// shortcut
-var HTTPError = sUtil.HTTPError;
-
-
-/**
- * The main router object
- */
-var router = sUtil.router();
-
-/**
- * The main application object reported when this module is require()d
- */
-var app;
-
-
-/** ROUTE DECLARATIONS GO HERE **/
-
-
-module.exports = function(appObj) {
-
- app = appObj;
-
- // the returned object mounts the routes on
- // /{domain}/vX/mount/path
- return {
- path: '/mount/path',
- api_version: X, // must be a number!
- router: router
- };
-
-};
-
diff --git a/routes/evaluate.js b/routes/evaluate.js
deleted file mode 100644
index d24c2b0..0000000
--- a/routes/evaluate.js
+++ /dev/null
@@ -1,276 +0,0 @@
-'use strict';
-
-const sUtil = require( '../lib/util' );
-const { maybeRunZ7 } = require( '../src/maybeRunZ7.js' );
-const { executorConfigurations } = require( '../executorConfigurations.js' ); // eslint-disable-line node/no-missing-require
-const { runExecutorSubprocess, setExecutorConfigurations } = require( '../src/subprocess.js' );
-const { getWrappedZObjectFromVersionedBinary, getZObjectFromBinary } = require( '../executors/javascript/function-schemata/javascript/src/serialize.js' );
-const { error } = require( '../executors/javascript/function-schemata/javascript/src/error.js' );
-const { validatesAsFunctionCall } = require( '../executors/javascript/function-schemata/javascript/src/schema.js' );
-const { convertZListToItemArray, makeMappedResultEnvelope } = require( '../executors/javascript/function-schemata/javascript/src/utils.js' );
-
-setExecutorConfigurations( executorConfigurations );
-
-/**
- * The main router object
- */
-const router = sUtil.router();
-
-/**
- * The main application object reported when this module is require()d
- */
-let app;
-
-async function propagateResult( res, result, timer = null, childProcess = null ) {
- if ( res.writableEnded ) {
- return;
- }
- if ( timer !== null ) {
- clearTimeout( timer );
- }
-
- // Kill the executor child process if it has survived.
- if ( childProcess !== null ) {
- try {
- process.kill( childProcess.pid );
- childProcess = null;
- } catch ( error ) { }
- }
- res.json( result );
-}
-
-async function runFunctionCall( ZObject, childProcess, res, timer, websocket = null ) {
- const resultTuple = await maybeRunZ7( ZObject, childProcess, websocket );
-
- // Return the resulting Z22 to the caller.
- propagateResult( res, resultTuple.Z22, timer, childProcess );
-}
-
-router.post( '/', async ( req, res ) => {
-
- const wss = app.wss;
- let ZObject;
-
- const timeoutLimit = process.env.FUNCTION_EVALUATOR_TIMEOUT || 15000;
-
- const timer = setTimeout(
- async function () {
- await propagateResult(
- res,
- makeMappedResultEnvelope(
- null,
- {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z5'
- },
- // TODO (T327275): Figure out what error this should actually be.
- Z5K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z558'
- },
- Z5K2: {
- Z1K1: 'Z6',
- Z6K1: 'Function call timed out'
- }
- }
- )
- );
- },
- timeoutLimit
- );
-
- try {
- // Case 1: The ZObject was serialized with version 0.0.1 of the
- // Avro schema, without version information.
- ZObject = getZObjectFromBinary( req.body, '0.0.1' );
- } catch ( err ) {
- try {
- // Case 2: The ZObject was serialized with a subsequent version of the
- // Avro schema.
- ZObject = getWrappedZObjectFromVersionedBinary( req.body );
- } catch ( err ) {
- // Case 3: The ZObject was a bare JSON object.
- // TODO (T320576): Condition this on Content-type header?
- ZObject = req.body;
- }
- }
-
- let reentrant = false;
-
- // Also support reentrant mode.
- if ( ZObject.reentrant !== undefined ) {
- reentrant = ZObject.reentrant;
- }
-
- if ( ZObject.zobject !== undefined ) {
- ZObject = ZObject.zobject;
- }
-
- // Get the coding language.
-
- let codingLanguage, errorString;
-
- if ( ZObject.codingLanguage === undefined ) {
- // Case 1: Avro schema semver < 0.0.3.
- try {
- const implementations = convertZListToItemArray( ZObject.Z7K1.Z8K4 );
- codingLanguage = implementations[ 0 ].Z14K3.Z16K1.Z61K1.Z6K1;
- } catch ( e ) {
- errorString = e;
- }
- } else {
- // Case 2: Avro schema semver >= 0.0.3.
- codingLanguage = ZObject.codingLanguage;
- errorString = 'codingLanguage not specified';
- }
-
- // We use ! here because null, undefined, and empty string are all bad values
- // for a programming language (although there's almost certainly an esolang called
- // "").
- if ( !codingLanguage ) {
- await propagateResult(
- res,
- makeMappedResultEnvelope(
- null,
- {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z5'
- },
- Z5K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z558'
- },
- Z5K2: {
- Z1K1: 'Z6',
- Z6K1: `Unable to find programming language in function call. ${errorString}`
- }
- }
- ),
- timer
- );
- return;
- }
-
- // Fill out the rest of the function call request.
- const functionCallRequest = {
- codeString: null,
- functionName: null,
- functionArguments: {}
- };
- let theStatus = null;
- const errorMessages = [];
- // Error for Avro schema semvers 0.0.3.
- // TODO (T292804): Figure out what error this should actually be.
- let errorCode = error.error_in_evaluation;
-
- if ( ZObject.functionName === undefined ) {
- // Case 1: Avro schema semver < 0.0.3.
- theStatus = await validatesAsFunctionCall( ZObject );
- if ( theStatus.isValid() ) {
- try {
- for ( const key of Object.keys( ZObject ) ) {
- if ( key === 'Z1K1' ) {
- continue;
- }
- const value = ZObject[ key ];
- if ( key === 'Z7K1' ) {
- const firstImplementation = value.Z8K4.K1;
- functionCallRequest.codeString = firstImplementation.Z14K3.Z16K2.Z6K1;
- functionCallRequest.functionName = value.Z8K5.Z9K1;
- continue;
- }
- functionCallRequest.functionArguments[ key ] = value;
- }
- } catch ( e ) {
- errorMessages.push( 'Function call did not contain valid Function' );
- }
- } else {
- // Case 2: Avro schema semver >= 0.0.3.
- for ( const parserError of theStatus.getParserErrors() ) {
- errorMessages.push( parserError.message );
- }
- errorCode = theStatus.getZ5().Z5K1;
- }
- } else {
- if ( ZObject.codeString === undefined ) {
- errorMessages.push( 'Request did not supply codeString.' );
- } else {
- functionCallRequest.codeString = ZObject.codeString;
- }
- functionCallRequest.functionName = ZObject.functionName;
- functionCallRequest.functionArguments = ZObject.functionArguments;
- }
-
- if ( errorMessages.length > 0 ) {
- await propagateResult(
- res,
- makeMappedResultEnvelope(
- null,
- {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z5'
- },
- // TODO (T292804): Figure out what error this should actually be.
- Z5K1: errorCode,
- Z5K2: {
- Z1K1: 'Z6',
- Z6K1: `Unable to validate function call. Parser errors: ${errorMessages}`
- }
- }
- ),
- timer
- );
- return;
- }
-
- // Everything is apparently fine, so see if the coding language has an executor.
- const childProcess = runExecutorSubprocess( codingLanguage );
- if ( childProcess === null ) {
- await propagateResult(
- res,
- makeMappedResultEnvelope(
- null,
- {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z5'
- },
- Z5K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z558'
- },
- Z5K2: {
- Z1K1: 'Z6',
- Z6K1: `No executor found for programming language ${codingLanguage}.`
- }
- }
- ),
- timer
- );
- return;
- }
-
- // Execute the function call.
- if ( reentrant ) {
- wss.once( 'connection', async ( ws ) => {
- await runFunctionCall( functionCallRequest, childProcess, res, timer, ws );
- } );
- } else {
- await runFunctionCall( functionCallRequest, childProcess, res, timer );
- }
-} );
-
-module.exports = function ( appObj ) {
-
- app = appObj;
-
- return {
- path: '/evaluate',
- api_version: 1, // must be a number!
- router: router
- };
-
-};
diff --git a/routes/ex.js b/routes/ex.js
deleted file mode 100644
index fe1d472..0000000
--- a/routes/ex.js
+++ /dev/null
@@ -1,131 +0,0 @@
-'use strict';
-
-const BBPromise = require( 'bluebird' );
-const sUtil = require( '../lib/util' );
-const fs = BBPromise.promisifyAll( require( 'fs' ) );
-
-// shortcut
-const HTTPError = sUtil.HTTPError;
-
-/**
- * The main router object
- */
-const router = sUtil.router();
-
-/*
- * ERROR EXAMPLES
- */
-
-/**
- * GET /err/array
- * An example route creating an invalid array to show generic,
- * direct error handling
- */
-router.get( '/err/array', ( req, res ) => {
-
- // let's create an array with -1 elems!
- const arr = new Array( -1 );
- // this is never reached
- res.send( arr.join() );
-
-} );
-
-/**
- * GET /err/file
- * Showcases promise error handling. The function is trying to
- * read a non-existent file, which will produce an error,
- * automatically handled by the template.
- */
-router.get( '/err/file', ( req, res ) => {
-
- // NOTE the return statement here, the promise
- // must be returned!
- // read the file
- return fs.readFileAsync( '../mushrooms.txt' )
- // and then send it back to the caller
- .then( ( text ) => {
- // note that this point is never reached
- res.send( text );
- } );
-
-} );
-
-/**
- * GET /err/manual/error
- * Throws a generic error manually
- */
-router.get( '/err/manual/error', ( unused_req, unused_res ) => { // eslint-disable-line no-unused-vars
-
- // simulate a constraint check
- const max = 50;
- if ( max > 10 ) {
- throw new Error( `A maximum value of 10 is expected, ${max} given!` );
- }
-
-} );
-
-/**
- * GET /err/manual/deny
- * Denies access to this resource endpoint
- */
-router.get( '/err/manual/deny', ( req, res ) => { // eslint-disable-line no-unused-vars
-
- // don't allow access
- throw new HTTPError( {
- status: 403,
- type: 'access_denied',
- title: 'Access denied',
- detail: 'No access is allowed to this endpoint'
- } );
-
-} );
-
-/**
- * GET /err/manual/auth
- */
-router.get( '/err/manual/auth', ( req, res ) => { // eslint-disable-line no-unused-vars
-
- // pretend to read a token file
- // again, note the return statement
- return fs.readFileAsync( `${__dirname}/../static/index.html` )
- // and pretend to compare it with what the user sent
- .then( ( token ) => {
- if ( !req.params || req.params.token !== token ) {
- // nope, not authorised to be here, sorry
- throw new HTTPError( {
- status: 401,
- type: 'unauthorized',
- title: 'Unauthorized',
- detail: 'You are not authorized to fetch this endpoint!'
- } );
- }
- } );
-
-} );
-
-/*
- * REQUEST EXAMPLES
- */
-
-/**
- * GET /req/uri
- */
-router.get( '/req/uri/:uri', ( req, res ) => {
- // to issue an external request, use req.issueRequest
- return req.issueRequest( req.params.uri )
- .then( ( r ) => {
- res.status( r.status );
- res.set( r.headers );
- res.end( r.body );
- } );
-} );
-
-module.exports = ( appObj ) => { // eslint-disable-line no-unused-vars
-
- return {
- path: '/ex',
- skip_domain: true,
- router
- };
-
-};
diff --git a/routes/info.js b/routes/info.js
deleted file mode 100644
index 68b8a4d..0000000
--- a/routes/info.js
+++ /dev/null
@@ -1,81 +0,0 @@
-'use strict';
-
-const sUtil = require( '../lib/util' );
-
-/**
- * The main router object
- */
-const router = sUtil.router();
-
-/**
- * The main application object reported when this module is require()d
- */
-let app;
-
-/**
- * GET /
- * Gets some basic info about this service
- */
-router.get( '/', ( req, res ) => {
-
- // simple sync return
- res.json( {
- name: app.info.name,
- version: app.info.version,
- description: app.info.description,
- home: app.info.homepage
- } );
-
-} );
-
-/**
- * GET /name
- * Gets the service's name as defined in package.json
- */
-router.get( '/name', ( req, res ) => {
-
- // simple return
- res.json( { name: app.info.name } );
-
-} );
-
-/**
- * GET /version
- * Gets the service's version as defined in package.json
- */
-router.get( '/version', ( req, res ) => {
-
- // simple return
- res.json( { version: app.info.version } );
-
-} );
-
-/**
- * ALL /home
- * Redirects to the service's home page if one is given,
- * returns a 404 otherwise
- */
-router.all( '/home', ( req, res ) => {
-
- const home = app.info.homepage;
- if ( home && /^http/.test( home ) ) {
- // we have a home page URI defined, so send it
- res.redirect( 301, home );
- } else {
- // no URI defined for the home page, error out
- res.status( 404 ).end( `No home page URL defined for ${app.info.name}` );
- }
-
-} );
-
-module.exports = ( appObj ) => {
-
- app = appObj;
-
- return {
- path: '/_info',
- skip_domain: true,
- router
- };
-
-};
diff --git a/routes/root.js b/routes/root.js
deleted file mode 100644
index f194d43..0000000
--- a/routes/root.js
+++ /dev/null
@@ -1,53 +0,0 @@
-'use strict';
-
-const sUtil = require( '../lib/util' );
-const swaggerUi = require( '../lib/swagger-ui' );
-
-/**
- * The main router object
- */
-const router = sUtil.router();
-
-/**
- * The main application object reported when this module is require()d
- */
-let app;
-
-/**
- * GET /robots.txt
- * Instructs robots no indexing should occur on this domain.
- */
-router.get( '/robots.txt', ( req, res ) => {
-
- res.type( 'text/plain' ).end( 'User-agent: *\nDisallow: /\n' );
-
-} );
-
-/**
- * GET /
- * Main entry point. Currently it only responds if the spec or doc query
- * parameter is given, otherwise lets the next middleware handle it
- */
-router.get( '/', ( req, res, next ) => {
-
- if ( {}.hasOwnProperty.call( req.query || {}, 'spec' ) ) {
- res.json( app.conf.spec );
- } else if ( {}.hasOwnProperty.call( req.query || {}, 'doc' ) ) {
- return swaggerUi.processRequest( app, req, res );
- } else {
- next();
- }
-
-} );
-
-module.exports = ( appObj ) => {
-
- app = appObj;
-
- return {
- path: '/',
- skip_domain: true,
- router
- };
-
-};
diff --git a/routes/v1.js b/routes/v1.js
deleted file mode 100644
index 1007594..0000000
--- a/routes/v1.js
+++ /dev/null
@@ -1,143 +0,0 @@
-'use strict';
-
-const BBPromise = require( 'bluebird' );
-const domino = require( 'domino' );
-const sUtil = require( '../lib/util' );
-const apiUtil = require( '../lib/api-util' );
-
-// shortcut
-const HTTPError = sUtil.HTTPError;
-
-/**
- * The main router object
- */
-const router = sUtil.router();
-
-/**
- * GET /siteinfo{/prop}
- * Fetches site info for the given domain, optionally
- * returning only the specified property. This example shows how to:
- * 1) use named URI parameters (by prefixing them with a colon)
- * 2) use optional URI parameters (by suffixing them with a question mark)
- * 3) extract URI parameters
- * 4) issue external requests
- * 5) use Promises to achieve (4) and return the result
- *
- * For more info about routing see http://expressjs.com/guide/routing.html
- *
- * There are multiple ways of calling this endpoint:
- * 1) GET /{domain}/v1/siteinfo/
- * 2) GET /{domain}/v1/siteinfo/mainpage (or other props available in
- * the general siprop, as supported by MWAPI)
- */
-router.get( '/siteinfo/:prop?', ( req, res ) => {
-
- // construct the query for the MW Action API
- const apiQuery = {
- action: 'query',
- meta: 'siteinfo'
- };
-
- // send it
- return apiUtil.mwApiGet( req, apiQuery )
- // and then return the result to the caller
- .then( ( apiRes ) => {
- // do we have to return only one prop?
- if ( req.params.prop ) {
- // check it exists in the response body
- if ( apiRes.body.query.general[ req.params.prop ] === undefined ) {
- // nope, error out
- throw new HTTPError( {
- status: 404,
- type: 'not_found',
- title: 'No such property',
- detail: `Property ${req.params.prop} not found in MW API response!`
- } );
- }
- // ok, return that prop
- const ret = {};
- ret[ req.params.prop ] = apiRes.body.query.general[ req.params.prop ];
- res.status( 200 ).json( ret );
- return;
- }
- // set the response code as returned by the MW API
- // and return the whole response (contained in body.query.general)
- res.status( 200 ).json( apiRes.body.query.general );
- } );
-
-} );
-
-/*
- * PAGE MASSAGING SECTION
- */
-
-/**
- * A helper function that obtains the Parsoid HTML for a given title and
- * loads it into a domino DOM document instance.
- *
- * @param {!Object} req the incoming request
- * @return {Promise} a promise resolving as the HTML element object
- */
-function getBody( req ) {
-
- // get the page
- return apiUtil.restApiGet( req, `page/html/${req.params.title}` )
- .then( ( callRes ) => {
- // and then load and parse the page
- return BBPromise.resolve( domino.createDocument( callRes.body ) );
- } );
-
-}
-
-/**
- * GET /page/{title}
- * Gets the body of a given page.
- */
-router.get( '/page/:title', ( req, res ) => {
-
- // get the page's HTML directly
- return getBody( req )
- // and then return it
- .then( ( doc ) => {
- res.status( 200 ).type( 'html' ).end( doc.body.innerHTML );
- } );
-
-} );
-
-/**
- * GET /page/{title}/lead
- * Gets the leading section of a given page.
- */
-router.get( '/page/:title/lead', ( req, res ) => {
-
- // get the page's HTML directly
- return getBody( req )
- // and then find the leading section and return it
- .then( ( doc ) => {
- let leadSec = '';
- // find all paragraphs directly under the content div
- const ps = doc.querySelectorAll( 'p' ) || [];
- for ( let idx = 0; idx < ps.length; idx++ ) {
- const child = ps[ idx ];
- // find the first paragraph that is not empty
- if ( !/^\s*$/.test( child.innerHTML ) ) {
- // that must be our leading section
- // so enclose it in a <div>
- leadSec = `<div id="lead_section">${child.innerHTML}</div>`;
- break;
- }
- }
- res.status( 200 ).type( 'html' ).end( leadSec );
- } );
-
-} );
-
-module.exports = ( appObj ) => { // eslint-disable-line no-unused-vars
-
- return {
- path: '/',
- api_version: 1,
- router
- };
-
-};
diff --git a/server.js b/server.js
deleted file mode 100755
index debcc1e..0000000
--- a/server.js
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env node
-
-'use strict';
-
-// Service entry point. Try node server --help for commandline options.
-
-// Start the service by running service-runner, which in turn loads the config
-// (config.yaml by default, specify other path with -c). It requires the
-// module(s) specified in the config 'services' section (app.js in this
-// example).
-const ServiceRunner = require( 'service-runner' );
-new ServiceRunner().start();
diff --git a/spec.template.yaml b/spec.template.yaml
deleted file mode 100644
index b91d981..0000000
--- a/spec.template.yaml
+++ /dev/null
@@ -1,492 +0,0 @@
-openapi: 3.0.0
-info:
- version: 0.7.0
- title: WikiLambda Function Evaluator Service
- description: >
- The evaluator service executes user-written code in a variety of
- programming languages. It is responsible for validating incoming objects
- as Z7/Function calls, determining the correct executor to delegate to,
- and returning either the result of function execution or an appropriate
- error back to the caller.
- termsOfService: https://wikimediafoundation.org/wiki/Terms_of_Use
- contact:
- name: the Abstract Wikipedia team
- url: https://meta.wikimedia.org/wiki/Abstract_Wikipedia
- license:
- name: Apache2
- url: http://www.apache.org/licenses/LICENSE-2.0
-x-default-params:
- domain: en.wikipedia.org
-
-paths:
- # from routes/root.js
- /robots.txt:
- get:
- tags:
- - Root
- - Robots
- description: Gets robots.txt
- responses:
- 200:
- description: Success
- default:
- description: Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: robots.txt check
- request: {}
- response:
- status: 200
- /:
- get:
- tags:
- - Root
- description: The root service end-point
- responses:
- 200:
- description: Success
- default:
- description: Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: root with no query params
- request: {}
- response:
- status: 404
- - title: spec from root
- request:
- query:
- spec: true
- response:
- status: 200
- - title: doc from root
- request:
- query:
- doc: true
- response:
- status: 200
- - title: root with wrong query param
- request:
- query:
- fooo: true
- response:
- status: 404
- # from routes/v1.js
- /{domain}/v1/siteinfo:
- get:
- tags:
- - Site info
- - MW API call
- - Example
- description: Calls the MW API siteinfo action and returns the response
- parameters:
- - $ref: "#/components/parameters/domain"
- responses:
- 200:
- description: Success
- 404:
- description: Not Found
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- 504:
- description: Server Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- default:
- description: Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: site info for default domain
- request: {}
- response:
- status: 200
- headers:
- content-type: application/json
- - title: site info for a non-existent domain
- request:
- params:
- domain: my.fake.domain
- response:
- status: 504
- headers:
- content-type: application/json
- /{domain}/v1/siteinfo/{prop}:
- get:
- tags:
- - Site info
- - MW API call
- - Example
- description: Calls the MW API siteinfo action and returns the response
- parameters:
- - $ref: "#/components/parameters/domain"
- - $ref: "#/components/parameters/prop"
- responses:
- 200:
- description: Success
- 404:
- description: Not Found
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- 504:
- description: Server Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- default:
- description: Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: site info for default domain
- request: {}
- response:
- status: 200
- headers:
- content-type: application/json
- - title: site info for a non-existent domain
- request:
- params:
- domain: my.fake.domain
- response:
- status: 504
- headers:
- content-type: application/json
- - title: site info check for valid prop
- request:
- params:
- prop: sitename
- response:
- status: 200
- headers:
- content-type: application/json
- body:
- sitename: Wikipedia
- - title: site info check for invalid prop
- request:
- params:
- prop: blaprop
- response:
- status: 404
- headers:
- content-type: application/json
- /{domain}/v1/page/{title}:
- get:
- tags:
- - Page content
- - Example
- description: Gets the HTML for the page with the given title
- parameters:
- - $ref: "#/components/parameters/domain"
- - $ref: "#/components/parameters/title"
- responses:
- 200:
- description: OK
- 404:
- description: Not Found
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- default:
- description: Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: get the Foobar page from en.wp.org
- request:
- params:
- title: Foobar
- response:
- status: 200
- headers:
- content-type: text/html
- /{domain}/v1/page/{title}/lead:
- get:
- tags:
- - Page content
- - Lead section
- - Example
- description: Gets the lead-section HTML for the page with the given title
- parameters:
- - $ref: "#/components/parameters/domain"
- - $ref: "#/components/parameters/title"
- responses:
- 200:
- description: OK
- 404:
- description: Not Found
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- default:
- description: Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: get the lead section for Barack Obama
- request:
- params:
- title: Barack Obama
- response:
- status: 200
- headers:
- content-type: text/html
- # from routes/info.js
- /_info:
- get:
- tags:
- - Service information
- description: Gets information about the service
- responses:
- 200:
- description: OK
- x-amples:
- - title: retrieve service info
- request: {}
- response:
- status: 200
- headers:
- content-type: application/json
- body:
- name: /.+/
- description: /.+/
- version: /.+/
- home: /.+/
- /_info/name:
- get:
- tags:
- - Service information
- - Service name
- description: Gets the name of the service
- responses:
- 200:
- description: OK
- x-amples:
- - title: retrieve service name
- request: {}
- response:
- status: 200
- headers:
- content-type: application/json
- body:
- name: /.+/
- /_info/version:
- get:
- tags:
- - Service information
- - Service version
- description: Gets the running version of the service
- responses:
- 200:
- description: OK
- x-amples:
- - title: retrieve service version
- request: {}
- response:
- status: 200
- headers:
- content-type: application/json
- body:
- version: /.+/
- /_info/home:
- get:
- tags:
- - Service information
- - Service homepage
- description: Redirects to the home page
- responses:
- 301:
- description: Redirect
- x-amples:
- - title: redirect to the home page
- request: {}
- response:
- status: 301
- # from routes/ex.js
- /ex/err/array:
- get:
- tags:
- - Example
- - Error
- - Internal error
- description: Generates an internal error due to a wrong array declaration
- responses:
- 500:
- description: Internal Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: wrong array declaration example
- request: {}
- response:
- status: 500
- headers:
- content-type: application/json
- /ex/err/file:
- get:
- tags:
- - Example
- - Error
- - Internal error
- description: Generates an internal error due to a non-existing file
- responses:
- 500:
- description: Internal Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: non-existing file example
- request: {}
- response:
- status: 500
- headers:
- content-type: application/json
- /ex/err/manual/error:
- get:
- tags:
- - Example
- - Error
- - Internal error
- description: Generates an internal error due to a user-thrown error
- responses:
- 500:
- description: Internal Error
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: user error example
- request: {}
- response:
- status: 500
- headers:
- content-type: application/json
- /ex/err/manual/deny:
- get:
- tags:
- - Example
- - Error
- - Access denied
- description: Generates an access-denied error
- responses:
- 403:
- description: Access Denied
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: access denied error example
- request: {}
- response:
- status: 403
- headers:
- content-type: application/json
- /ex/err/manual/auth:
- get:
- tags:
- - Example
- - Error
- - Unauthorised access
- description: Generates an unauthorised error
- responses:
- 401:
- description: Unauthorized
- content:
- application/json:
- schema:
- $ref: "#/components/schemas/problem"
- x-amples:
- - title: unauthorised error example
- request: {}
- response:
- status: 401
- headers:
- content-type: application/json
- /ex/req/uri/{uri}:
- get:
- tags:
- - Example
- - Request issuing
- description: Issues a request to the given URI
- responses:
- 200:
- description: OK
- x-amples:
- - title: Get example home page
- request:
- params:
- uri: "http://www.example.com"
-
-components:
- schemas:
- # A https://tools.ietf.org/html/draft-nottingham-http-problem
- problem:
- required:
- - type
- properties:
- status:
- type: integer
- type:
- type: string
- title:
- type: string
- detail:
- type: string
- method:
- type: string
- uri:
- type: string
- parameters:
- domain:
- in: path
- name: domain
- required: true
- schema:
- type: string
- description: |
- Project domain for the requested data.
- title:
- in: path
- name: title
- required: true
- schema:
- type: string
- description: |
- Page title. Use underscores instead of spaces. Example: `Main_Page`
- prop:
- in: path
- name: prop
- required: true
- schema:
- type: string
- description: |
- Site info prop.
diff --git a/src/fileUtils.js b/src/fileUtils.js
deleted file mode 100644
index 0a628e2..0000000
--- a/src/fileUtils.js
+++ /dev/null
@@ -1,11 +0,0 @@
-'use strict';
-
-const fs = require( 'fs' );
-
-function readJSON( fileName ) {
- return JSON.parse( fs.readFileSync( fileName, { encoding: 'utf8' } ) );
-}
-
-module.exports = {
- readJSON
-};
diff --git a/src/logger.js b/src/logger.js
deleted file mode 100644
index e0952de..0000000
--- a/src/logger.js
+++ /dev/null
@@ -1,42 +0,0 @@
-'use strict';
-
-const ServiceRunner = require( 'service-runner' );
-
-const { LoggerWrapper } = require( '../executors/javascript/function-schemata/javascript/src/LoggerWrapper.js' );
-
-// This is the universal logger we will use for the service.
-let _logger;
-
-/**
- * Gets the universal logger for this app. It should have been
- * set during initialization, but if it somehow wasn't, a new
- * one will be created.
- *
- * Usage:
- * const { getLogger } = require( '...logger.js' );
- * const logger = getLogger()
- * logger.log('warn', 'hello this is a message');
- * logger.warn('hello this is also a message');
- *
- * @return {LoggerWrapper} The universal logger for this orchestrator app.
- */
-function getLogger() {
- if ( !_logger ) {
- setLogger( ServiceRunner.getLogger( {
- name: 'function-orchestrator'
- } ) );
- }
- return _logger;
-}
-
-/**
- * Sets the universal logger for this app. It wraps the service runner logger
- * in a new object with more logging APIs.
- *
- * @param {*} logger The Service Runner logger object.
- */
-function setLogger( logger ) {
- _logger = new LoggerWrapper( logger );
-}
-
-module.exports = { getLogger, setLogger };
diff --git a/src/maybeRunZ7.js b/src/maybeRunZ7.js
deleted file mode 100644
index 01c166d..0000000
--- a/src/maybeRunZ7.js
+++ /dev/null
@@ -1,190 +0,0 @@
-'use strict';
-
-const { makeMappedResultEnvelope, setMetadataValue } = require( '../executors/javascript/function-schemata/javascript/src/utils.js' );
-const { getLogger } = require( './logger.js' );
-const os = require( 'os' );
-const pidusage = require( 'pidusage' );
-const { cpuUsage, memoryUsage } = require( 'node:process' );
-
-async function maybeRunZ7( functionCallRequest, executorProcess, websocket = null ) {
- const startTime = new Date();
- const startUsage = cpuUsage();
-
- const logger = getLogger();
-
- // Captured stdout will become the resultant ZObject; captured stderr will be logged.
- let Z22 = null;
- const stdoutQueue = [];
- executorProcess.stdout.on( 'data', ( data ) => {
- // TODO (T295699): Avoid toString; find a way to merge Buffers.
- data = data.toString();
-
- if ( data.match( /^\s*call / ) ) {
- // When the data starts with "call ", request a subsequent orchestration
- // via the websocket.
- //
- // If websocket is null (i.e., reentrant mode is disabled), exit
- // early.
- if ( websocket === null ) {
- Z22 = makeMappedResultEnvelope(
- null,
- {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z5'
- },
- Z5K1: {
- Z1K1: 'Z9',
- // Generic evaluation error.
- Z9K1: 'Z507'
- },
- Z5K2: {
- Z1K1: 'Z6',
- Z6K1: 'Non-reentrant executor tried to call back to the orchestrator'
- }
- } );
- process.kill( executorProcess.pid );
- } else {
- websocket.send( data );
- }
- } else if ( data.replace( /\s/g, '' ) ) {
- // Skip data that contains only whitespaces; all other data becomes
- // part of the eventual result.
- // TODO (T322345): Consider raising an error if stdout only contains
- // whitespace.
- stdoutQueue.push( data );
- }
- } );
- const stdoutPromise = new Promise( ( resolve ) => {
- executorProcess.stdout.on( 'close', () => {
- resolve();
- } );
- } );
-
- executorProcess.stderr.on( 'data', ( data ) => {
- data = data.toString();
- if ( data.match( /^\s*end/ ) ) {
- executorProcess.stdin.end();
- } else {
- // TODO (T322097): Use a logger; consider whether this should be
- // logged to INFO or ERROR or what.
- }
- } );
- const stderrPromise = new Promise( ( resolve ) => {
- executorProcess.stderr.on( 'close', () => {
- resolve();
- } );
- } );
-
- if ( websocket !== null ) {
- websocket.on( 'message', ( message ) => {
- executorProcess.stdin.write( message + '\n' );
- } );
- }
-
- // Write ZObject to executor process.
- executorProcess.stdin.cork();
- executorProcess.stdin.write( JSON.stringify( functionCallRequest ) );
- executorProcess.stdin.write( '\n' );
- executorProcess.stdin.uncork();
- executorProcess.stdin.write( '\n' );
- executorProcess.stdin.uncork();
-
- let pidStats;
- // TODO(T313460): Take a closer look at how useful the pidusage results are
- pidusage( executorProcess.pid, function ( err, stats ) {
- if ( err ) {
- logger.error( 'pidusage error: ' + err );
- return;
- }
- pidStats = stats;
- } );
-
- // Wait until subprocess exits; return the result of function execution.
- await Promise.all( [ stdoutPromise, stderrPromise ] );
- pidusage.clear();
-
- // Z22 may already have been set to an error state. If it hasn't, read the
- // Z22 returned by the executor or generate an error.
- if ( Z22 === null ) {
- let errorful;
- // TODO (T322345): Raise an error if all we ever got from the code executor
- // was whitespace.
- const contents = stdoutQueue.join( '' );
-
- if ( contents ) {
- try {
- Z22 = JSON.parse( contents );
- } catch ( error ) {
- errorful = 'contentful';
- }
- } else {
- errorful = 'empty';
- }
-
- if ( errorful ) {
- Z22 = makeMappedResultEnvelope(
- null,
- {
- Z1K1: {
- Z1K1: 'Z9',
- Z9K1: 'Z5'
- },
- Z5K1: {
- Z1K1: 'Z9',
- // Generic evaluation error.
- Z9K1: 'Z507'
- },
- Z5K2: {
- Z1K1: 'Z6',
- Z6K1: errorful === 'contentful' ?
- `Executor returned some nonsense: ${contents}.` :
- 'Executor returned an empty response.'
- }
- } );
-
- }
- }
-
- const cpuUsageStats = cpuUsage( startUsage );
- const cpuUsageStr = ( ( cpuUsageStats.user + cpuUsageStats.system ) / 1000 ) + ' ms';
- const memoryUsageStr = Math.round( memoryUsage.rss() / 1024 / 1024 * 100 ) / 100 + ' MiB';
- const endTime = new Date();
- const startTimeStr = startTime.toISOString();
- const endTimeStr = endTime.toISOString();
- const durationStr = ( endTime.getTime() - startTime.getTime() ) + ' ms';
- const hostname = os.hostname();
- Z22 = setMetadataValue( Z22, { Z1K1: 'Z6', Z6K1: 'evaluationMemoryUsage' }, { Z1K1: 'Z6', Z6K1: memoryUsageStr } );
- Z22 = setMetadataValue( Z22, { Z1K1: 'Z6', Z6K1: 'evaluationCpuUsage' }, { Z1K1: 'Z6', Z6K1: cpuUsageStr } );
- Z22 = setMetadataValue( Z22, { Z1K1: 'Z6', Z6K1: 'evaluationStartTime' }, { Z1K1: 'Z6', Z6K1: startTimeStr } );
- Z22 = setMetadataValue( Z22, { Z1K1: 'Z6', Z6K1: 'evaluationEndTime' }, { Z1K1: 'Z6', Z6K1: endTimeStr } );
- Z22 = setMetadataValue( Z22, { Z1K1: 'Z6', Z6K1: 'evaluationDuration' }, { Z1K1: 'Z6', Z6K1: durationStr } );
- Z22 = setMetadataValue( Z22, { Z1K1: 'Z6', Z6K1: 'evaluationHostname' }, { Z1K1: 'Z6', Z6K1: hostname } );
- logger.debug( 'Evaluation memory usage: ' + memoryUsageStr );
- logger.debug( 'Evaluation CPU usage: ' + cpuUsageStr );
- logger.debug( 'Evaluation start time: ' + startTimeStr );
- logger.debug( 'Evaluation end time: ' + endTimeStr );
- logger.debug( 'Evaluation duration: ' + durationStr );
- logger.debug( 'Evaluation hostname: ' + hostname );
- if ( pidStats ) {
- const executionMemoryUsageStr = Math.round( pidStats.memory / 1024 / 1024 * 100 ) / 100 + ' MiB';
- const executionCpuUsageStr = pidStats.ctime.toString() + ' μs';
- Z22 = setMetadataValue( Z22, { Z1K1: 'Z6', Z6K1: 'executionMemoryUsage' }, {
- Z1K1: 'Z6',
- Z6K1: executionMemoryUsageStr
- } );
- Z22 = setMetadataValue( Z22, { Z1K1: 'Z6', Z6K1: 'executionCpuUsage' }, {
- Z1K1: 'Z6',
- Z6K1: executionCpuUsageStr
- } );
- logger.debug( 'Execution memory usage: ' + executionMemoryUsageStr );
- logger.debug( 'Execution CPU usage: ' + executionCpuUsageStr );
- }
-
- return {
- process: executorProcess,
- Z22: Z22
- };
-}
-
-module.exports = { maybeRunZ7 };
diff --git a/src/monolithicSoftwareLanguages.js b/src/monolithicSoftwareLanguages.js
deleted file mode 100644
index 0488b22..0000000
--- a/src/monolithicSoftwareLanguages.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-const softwareLanguages = require( './executors/javascript/function-schemata/data/definitions/softwareLanguages.json' ); // eslint-disable-line node/no-missing-require
-
-const executorConfigurations = new Map();
-
-for ( const languageVersion in softwareLanguages ) {
- let executorConfig;
-
- if ( languageVersion.startsWith( 'javascript' ) ) {
- executorConfig = {
- // TODO: This should use a different executable for different versions of Node once we
- // support them (needs said versioned binary to also exist first!).
- executable: 'node',
- callArguments: {
- args: [ 'executors/javascript/executor.js' ]
- }
- };
- } else if ( languageVersion.startsWith( 'python' ) ) {
- executorConfig = {
- // TODO: This should use a different executable for different versions of python once we
- // support them (needs said versioned binary to also exist first!).
- executable: 'python3',
- callArguments: {
- // -u forces std* streams to be unbuffered
- args: [ '-u', 'executors/python3/executor.py' ],
- env: { PYTHONPATH: 'executors' }
- }
- };
- }
-
- // Only register an executor if we recognised it (e.g. Lua doesn't yet have an executable here)
- if ( executorConfig ) {
- // Register this executor for the given ZID (e.g. 'Z601' or 'Z612')
- executorConfigurations.set( softwareLanguages[ languageVersion ], executorConfig );
-
- // Register this executor under the language string (e.g. 'javascript-es5' or 'python-3-5')
- // TODO (T287155): This is a legacy, and we will remove it
- executorConfigurations.set( languageVersion, executorConfig );
- }
-}
-
-module.exports = { executorConfigurations };
diff --git a/src/subprocess.js b/src/subprocess.js
deleted file mode 100644
index 8361b47..0000000
--- a/src/subprocess.js
+++ /dev/null
@@ -1,43 +0,0 @@
-'use strict';
-
-const { spawn } = require( 'child_process' );
-
-function createExecutorSubprocess( binary, callArguments ) {
- const args = callArguments.args;
- const processEnv = {};
- // process.env must be sent to the executor subprocess in order to allow coverage
- // to run properly.
- for ( const key of Object.keys( process.env ) ) {
- processEnv[ key ] = process.env[ key ];
- }
- if ( callArguments.env !== undefined ) {
- for ( const key of Object.keys( callArguments.env ) ) {
- processEnv[ key ] = callArguments.env[ key ];
- }
- }
- const options = { detached: true };
- options.env = processEnv;
- const subProcess = spawn( binary, args, options );
- subProcess.unref();
- subProcess.stdin.setEncoding( 'utf-8' );
- return subProcess;
-}
-
-const executors = new Map();
-
-function setExecutorConfigurations( executorConfigs ) {
- for ( const entry of executorConfigs.entries() ) {
- executors.set( entry[ 0 ], entry[ 1 ] );
- }
-}
-
-function runExecutorSubprocess( languageVersion ) {
- const executableDict = executors.get( languageVersion );
- if ( executableDict === undefined ) {
- return null;
- }
- const { executable, callArguments } = executableDict;
- return createExecutorSubprocess( executable, callArguments );
-}
-
-module.exports = { runExecutorSubprocess, setExecutorConfigurations };
diff --git a/static/index.html b/static/index.html
deleted file mode 100644
index 29fbb36..0000000
--- a/static/index.html
+++ /dev/null
@@ -1,635 +0,0 @@
-<!DOCTYPE html>
-<html lang="en" dir="ltr" class="client-nojs">
-<head>
-<meta charset="UTF-8"/>
-<title>Wikipedia, the free encyclopedia</title>
-<script>document.documentElement.className = document.documentElement.className.replace( /(^|\s)client-nojs(\s|$)/, "$1client-js$2" );</script>
-<script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Main_Page","wgTitle":"Main Page","wgCurRevisionId":696846920,"wgRevisionId":696846920,"wgArticleId":15580374,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"Main_Page","wgRelevantArticleId":15580374,"wgRequestId":"VxVdZgpAADUAAB37@64AAAAG","wgIsProbablyEditable":false,"wgRestrictionEdit":["sysop"],"wgRestrictionMove":["sysop"],"wgIsMainPage":true,"wgWikiEditorEnabledModules":{"toolbar":true,"dialogs":true,"preview":false,"publish":false},"wgBetaFeaturesFeatures":[],"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","usePageImages":true,"usePageDescriptions":true},"wgPreferredVariant":"en","wgRelatedArticles":null,"wgRelatedArticlesUseCirrusSearch":true,"wgRelatedArticlesOnlyUseCirrusSearch":false,"wgULSAcceptLanguageList":[],"wgULSCurrentAutonym":"English","wgFlaggedRevsParams":{"tags":{"status":{"levels":1,"quality":2,"pristine":3}}},"wgStableRevisionId":null,"wgCategoryTreePageCategoryOptions":"{\"mode\":0,\"hideprefix\":20,\"showcount\":true,\"namespaces\":false}","wgNoticeProject":"wikipedia","wgCentralNoticeCategoriesUsingLegacy":["Fundraising","fundraising"],"wgCentralAuthMobileDomain":false,"wgWikibaseItemId":"Q5296","wgVisualEditorToolbarScrollOffset":0});mw.loader.implement("user.options",function($,jQuery){mw.user.options.set({"variant":"en"});});mw.loader.implement("user.tokens",function ( $, jQuery ) {
-mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});/*@nomin*/;
-
-});mw.loader.load(["mediawiki.page.startup","mediawiki.legacy.wikibits","ext.centralauth.centralautologin","mmv.head","ext.visualEditor.desktopArticleTarget.init","ext.uls.init","ext.uls.interface","ext.quicksurveys.init","mw.MediaWikiPlayer.loader","mw.PopUpMediaTransform","ext.centralNotice.bannerController","skins.vector.js"]);});</script>
-<link rel="stylesheet" href="/w/load.php?debug=false&lang=en&modules=ext.gadget.DRN-wizard%2CReferenceTooltips%2Ccharinsert%2Cfeatured-articles-links%2CrefToolbar%2Cswitcher%2Cteahouse%7Cext.tmh.thumbnail.styles%7Cext.uls.nojs%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediaBadges%7Cmediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.raggett%2CsectionAnchor%7Cmediawiki.skinning.interface%7Cskins.vector.styles&>
-<meta name="ResourceLoaderDynamicStyles" content=""/>
-<link rel="stylesheet" href="/w/load.php?debug=false&lang=en&modules=site&>
-<script async="" src="/w/load.php?debug=false&lang=en&modules=startup&>
-<meta name="generator" content="MediaWiki 1.27.0-wmf.21"/>
-<meta name="referrer" content="origin-when-cross-origin"/>
-<link rel="alternate" type="application/atom+xml" title="Wikipedia picture of the day feed" href="/w/api.php?action=featuredfeed&feed=potd&feedformat=atom"/>
-<link rel="alternate" type="application/atom+xml" title="Wikipedia featured articles feed" href="/w/api.php?action=featuredfeed&feed=featured&feedformat=atom"/>
-<link rel="alternate" type="application/atom+xml" title="Wikipedia "On this day..." feed" href="/w/api.php?action=featuredfeed&feed=onthisday&feedformat=atom"/>
-<link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"/>
-<link rel="shortcut icon" href="/static/favicon/wikipedia.ico"/>
-<link rel="search" type="application/opensearchdescription+xml" href="/w/opensearch_desc.php" title="Wikipedia (en)"/>
-<link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"/>
-<link rel="copyright" href="//creativecommons.org/licenses/by-sa/3.0/"/>
-<link rel="canonical" href="https://en.wikipedia.org/wiki/Main_Page"/>
-<link rel="dns-prefetch" href="//meta.wikimedia.org" />
-</head>
-<body class="mediawiki ltr sitedir-ltr ns-0 ns-subject page-Main_Page skin-vector action-view">
- <div id="mw-page-base" class="noprint"></div>
- <div id="mw-head-base" class="noprint"></div>
- <div id="content" class="mw-body" role="main">
- <a id="top"></a>
-
- <div id="siteNotice"><!-- CentralNotice --></div>
- <div class="mw-indicators">
-</div>
- <h1 id="firstHeading" class="firstHeading" lang="en">Main Page</h1>
- <div id="bodyContent" class="mw-body-content">
- <div id="siteSub">From Wikipedia, the free encyclopedia</div>
- <div id="contentSub"></div>
- <div id="jump-to-nav" class="mw-jump">
- Jump to: <a href="#mw-head">navigation</a>, <a href="#p-search">search</a>
- </div>
- <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><table id="mp-topbanner" style="width:100%; background:#f9f9f9; margin:1.2em 0 6px 0; border:1px solid #ddd;">
-<tr>
-<td style="width:61%; color:#000;">
-<table style="width:280px; border:none; background:none;">
-<tr>
-<td style="width:280px; text-align:center; white-space:nowrap; color:#000;">
-<div style="font-size:162%; border:none; margin:0; padding:.1em; color:#000;">Welcome to <a href="/wiki/Wikipedia" title="Wikipedia">Wikipedia</a>,</div>
-<div style="top:+0.2em; font-size:95%;">the <a href="/wiki/Free_content" title="Free content">free</a> <a href="/wiki/Encyclopedia" title="Encyclopedia">encyclopedia</a> that <a href="/wiki/Wikipedia:Introduction" title="Wikipedia:Introduction">anyone can edit</a>.</div>
-<div id="articlecount" style="font-size:85%;"><a href="/wiki/Special:Statistics" title="Special:Statistics">5,130,255</a> articles in <a href="/wiki/English_language" title="English language">English</a></div>
-</td>
-</tr>
-</table>
-</td>
-<td style="width:13%; font-size:95%;">
-<ul>
-<li><a href="/wiki/Portal:Arts" title="Portal:Arts">Arts</a></li>
-<li><a href="/wiki/Portal:Biography" title="Portal:Biography">Biography</a></li>
-<li><a href="/wiki/Portal:Geography" title="Portal:Geography">Geography</a></li>
-</ul>
-</td>
-<td style="width:13%; font-size:95%;">
-<ul>
-<li><a href="/wiki/Portal:History" title="Portal:History">History</a></li>
-<li><a href="/wiki/Portal:Mathematics" title="Portal:Mathematics">Mathematics</a></li>
-<li><a href="/wiki/Portal:Science" title="Portal:Science">Science</a></li>
-</ul>
-</td>
-<td style="width:13%; font-size:95%;">
-<ul>
-<li><a href="/wiki/Portal:Society" title="Portal:Society">Society</a></li>
-<li><a href="/wiki/Portal:Technology" title="Portal:Technology">Technology</a></li>
-<li><b><a href="/wiki/Portal:Contents/Portals" title="Portal:Contents/Portals">All portals</a></b></li>
-</ul>
-</td>
-</tr>
-</table>
-<table id="mp-upper" style="width: 100%; margin:4px 0 0 0; background:none; border-spacing: 0px;">
-<tr>
-<td class="MainPageBG" style="width:55%; border:1px solid #cef2e0; background:#f5fffa; vertical-align:top; color:#000;">
-<table id="mp-left" style="width:100%; vertical-align:top; background:#f5fffa;">
-<tr>
-<td style="padding:2px;">
-<h2 id="mp-tfa-h2" style="margin:3px; background:#cef2e0; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;"><span class="mw-headline" id="From_today.27s_featured_article">From today's featured article</span></h2>
-</td>
-</tr>
-<tr>
-<td style="color:#000;">
-<div id="mp-tfa" style="padding:2px 5px">
-<div id="mp-tfa-img" style="float: left; margin: 0.5em 0.9em 0.4em 0em;">
-<div class="thumbinner mp-thumb" style="background: transparent; border: none; padding: 0; max-width: 122px;"><a href="/wiki/File:William-O.-Bradley_(cropped).jpg" class="image" title="William O'Connell Bradley"><img alt="William O'Connell Bradley" src="//upload.wikimedia.org/wikipedia/commons/thumb/0/05/William-O.-Bradley_%28cropped%29.jpg/120px-William-O.-Bradley_%28cropped%29.jpg" width="120" height="160" class="thumbborder" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/05/William-O.-Bradley_%28cropped%29.jpg/180px-William-O.-Bradley_%28cropped%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/0/05/William-O.-Bradley_%28cropped%29.jpg/240px-William-O.-Bradley_%28cropped%29.jpg 2x" data-file-width="432" data-file-height="576" /></a></div>
-</div>
-<p><b><a href="/wiki/William_O%27Connell_Bradley" title="William O'Connell Bradley">William O'Connell Bradley</a></b> (1847–1914) was the <a href="/wiki/List_of_Governors_of_Kentucky" title="List of Governors of Kentucky">32nd</a> <a href="/wiki/Governor_of_Kentucky" title="Governor of Kentucky">Governor of Kentucky</a> and a <a href="/wiki/United_States_Senate" title="United States Senate">U.S. senator</a>. The first <a href="/wiki/Republican_Party_(United_States)" title="Republican Party (United States)">Republican</a> to serve as governor of the state, he became known as the father of the Republican Party in Kentucky. After a well-received speech seconding the presidential nomination of <a href="/wiki/Ulysses_S._Grant" title="Ulysses S. Grant">Ulysses S. Grant</a> at the <a href="/wiki/1880_Republican_National_Convention" title="1880 Republican National Convention">1880 Republican National Convention</a>, he was nominated for governor in 1887. He lost the general election that year, but won in 1895, capitalizing on divisions in the Democratic Party over the issue of <a href="/wiki/Free_Silver" title="Free Silver" class="mw-redirect">free silver</a>. His term was marked by political struggles and violence. He advanced the status of black citizens, but was unable to enact much of his reform agenda over a hostile Democratic majority. He was elected by the <a href="/wiki/Kentucky_General_Assembly" title="Kentucky General Assembly">state legislature</a> to the U.S. Senate in 1907, when voting was deadlocked and the Democratic candidate, outgoing Governor <a href="/wiki/J._C._W._Beckham" title="J. C. W. Beckham">J. C. W. Beckham</a>, refused to withdraw in favor of a compromise candidate. Bradley's opposition to <a href="/wiki/Prohibition_in_the_United_States" title="Prohibition in the United States">Prohibition</a> made him palatable to some Democratic legislators, and after two months of balloting, four of them crossed party lines to elect him. His career in the Senate was largely undistinguished. (<a href="/wiki/William_O%27Connell_Bradley" title="William O'Connell Bradley"><b>Full article...</b></a>)</p>
-<ul style="list-style:none; margin-left:0; text-align:right;">
-<li>Recently featured:
-<div class="hlist inline">
-<ul>
-<li><a href="/wiki/Daisy_Jugadai_Napaltjarri" title="Daisy Jugadai Napaltjarri">Daisy Jugadai Napaltjarri</a></li>
-<li><a href="/wiki/John_the_bookmaker_controversy" title="John the bookmaker controversy">John the bookmaker controversy</a></li>
-<li><a href="/wiki/Cosmic_Stories_and_Stirring_Science_Stories" title="Cosmic Stories and Stirring Science Stories"><i>Cosmic Stories</i> and <i>Stirring Science Stories</i></a></li>
-</ul>
-</div>
-</li>
-</ul>
-<div style="text-align: right;" class="hlist noprint" id="mp-tfa-footer">
-<ul>
-<li><b><a href="/wiki/Wikipedia:Today%27s_featured_article/April_2016" title="Wikipedia:Today's featured article/April 2016">Archive</a></b></li>
-<li><b><a href="https://lists.wikimedia.org/mailman/listinfo/daily-article-l" class="extiw" title="mail:daily-article-l">By email</a></b></li>
-<li><b><a href="/wiki/Wikipedia:Featured_articles" title="Wikipedia:Featured articles">More featured articles...</a></b></li>
-</ul>
-</div>
-</div>
-</td>
-</tr>
-<tr>
-<td style="padding:2px;">
-<h2 id="mp-dyk-h2" style="margin:3px; background:#cef2e0; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #a3bfb1; text-align:left; color:#000; padding:0.2em 0.4em;"><span class="mw-headline" id="Did_you_know...">Did you know...</span></h2>
-</td>
-</tr>
-<tr>
-<td style="color:#000; padding:2px 5px 5px;">
-<div id="mp-dyk">
-<div style="float:right; margin-left:0.5em;" id="mp-dyk-img">
-<div class="thumbinner mp-thumb" style="background: transparent; border: none; padding: 0; max-width: 120px;"><a href="/wiki/File:DSCN4079-castle_crop_b.jpg" class="image" title="Newcastle Emlyn Castle"><img alt="Newcastle Emlyn Castle" src="//upload.wikimedia.org/wikipedia/commons/thumb/e/ea/DSCN4079-castle_crop_b.jpg/120px-DSCN4079-castle_crop_b.jpg" width="120" height="57" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/e/ea/DSCN4079-castle_crop_b.jpg/180px-DSCN4079-castle_crop_b.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/e/ea/DSCN4079-castle_crop_b.jpg/240px-DSCN4079-castle_crop_b.jpg 2x" data-file-width="1600" data-file-height="756" /></a>
-<div class="thumbcaption" style="padding: 0.25em 0; word-wrap: break-word;">Newcastle Emlyn Castle</div>
-</div>
-</div>
-<ul>
-<li>... that sixty oxen were used to haul the <a href="/wiki/Siege_engine" title="Siege engine">siege engine</a> that helped force <b><a href="/wiki/Newcastle_Emlyn_Castle" title="Newcastle Emlyn Castle">Newcastle Emlyn Castle</a></b> <i>(pictured)</i> to surrender in 1287?</li>
-<li>... that <a href="/wiki/Federal_Emergency_Management_Agency" title="Federal Emergency Management Agency">FEMA</a>'s "<b><a href="/wiki/Documents_for_Contingencies_(Other_than_a_Plan_D_Situation)_Which_Justify_Application_of_Emergency_Measures_on_a_National_Scale" title="Documents for Contingencies (Other than a Plan D Situation) Which Justify Application of Emergency Measures on a National Scale">Other than a Plan D Situation</a></b>" file includes draft legislation to waive penalties for the late-filing of <a href="/wiki/Income_tax" title="Income tax">income tax</a> by persons residing in cities destroyed by nuclear attack?</li>
-<li>... that the student body at <a href="/wiki/Kennebec_Valley_Community_College" title="Kennebec Valley Community College">Kennebec Valley Community College</a> grew from 100 to 3,300 during Dr. <b><a href="/wiki/Barbara_W._Woodlee" title="Barbara W. Woodlee">Barbara W. Woodlee</a></b><span class="nowrap" style="padding-left:0.1em;">'</span>s nearly three decades as president?</li>
-<li>... that <b><a href="/wiki/Campaign_972" title="Campaign 972">Campaign 972</a></b> attacked <a href="/wiki/Paksong" title="Paksong">Paksong</a> 15 minutes after a ceasefire ended the <a href="/wiki/Laotian_Civil_War" title="Laotian Civil War">Laotian Civil War</a>?</li>
-<li>... that <b><a href="/wiki/Minna_Salami" title="Minna Salami">Minna Salami</a></b>, a woman journalist of Nigeria, is actively participating on African women's issues through her award-winning blog called <i>MsAfropolitan</i>?</li>
-<li>... that <b><a href="/wiki/Carew_Tidal_Mill" title="Carew Tidal Mill">Carew Tidal Mill</a></b> is the only restored <a href="/wiki/Tide_mill" title="Tide mill">tide mill</a> in Wales?</li>
-<li>... that <b><a href="/wiki/All_Saints%27_Church,_Southampton" title="All Saints' Church, Southampton">All Saints' Church</a></b>, which was attended by <a href="/wiki/Jane_Austen" title="Jane Austen">Jane Austen</a> when she lived in <a href="/wiki/Southampton" title="Southampton">Southampton</a>, was destroyed in the Second World War?</li>
-<li>... that the <b><a href="/wiki/WWE_Women%27s_Championship_(2016%E2%80%93present)" title="WWE Women's Championship (2016–present)">WWE Women's Championship</a></b> was created because female wrestlers felt that the former <a href="/wiki/WWE_Divas_Championship" title="WWE Divas Championship">Divas Championship</a> diminished them to "eye candy"?</li>
-</ul>
-<div style="text-align:right;" class="hlist noprint" id="mp-dyk-footer">
-<ul>
-<li><b><a href="/wiki/Wikipedia:Recent_additions" title="Wikipedia:Recent additions">Recently improved articles</a></b></li>
-<li><b><a href="/wiki/Wikipedia:Your_first_article" title="Wikipedia:Your first article">Start a new article</a></b></li>
-<li><b><a href="/wiki/Template_talk:Did_you_know" title="Template talk:Did you know">Nominate an article</a></b></li>
-</ul>
-</div>
-</div>
-</td>
-</tr>
-</table>
-</td>
-<td style="border:1px solid transparent;"></td>
-<td class="MainPageBG" style="width:45%; border:1px solid #cedff2; background:#f5faff; vertical-align:top;">
-<table id="mp-right" style="width:100%; vertical-align:top; background:#f5faff;">
-<tr>
-<td style="padding:2px;">
-<h2 id="mp-itn-h2" style="margin:3px; background:#cedff2; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding:0.2em 0.4em;"><span class="mw-headline" id="In_the_news">In the news</span></h2>
-</td>
-</tr>
-<tr>
-<td style="color:#000; padding:2px 5px;">
-<div id="mp-itn">
-<div style="float:right;margin-left:0.5em;" id="mp-itn-img">
-<div class="thumbinner mp-thumb" style="background: transparent; border: none; padding: 0; max-width: 100px;"><a href="/wiki/File:%D0%92%D0%BE%D0%BB%D0%BE%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%93%D1%80%D0%BE%D0%B9%D1%81%D0%BC%D0%B0%D0%BD_(cropped).jpg" class="image" title="Volodymyr Groysman in 2014"><img alt="Volodymyr Groysman in 2014" src="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/%D0%92%D0%BE%D0%BB%D0%BE%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%93%D1%80%D0%BE%D0%B9%D1%81%D0%BC%D0%B0%D0%BD_%28cropped%29.jpg/100px-%D0%92%D0%BE%D0%BB%D0%BE%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%93%D1%80%D0%BE%D0%B9%D1%81%D0%BC%D0%B0%D0%BD_%28cropped%29.jpg" width="100" height="133" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/8/87/%D0%92%D0%BE%D0%BB%D0%BE%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%93%D1%80%D0%BE%D0%B9%D1%81%D0%BC%D0%B0%D0%BD_%28cropped%29.jpg/150px-%D0%92%D0%BE%D0%BB%D0%BE%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%93%D1%80%D0%BE%D0%B9%D1%81%D0%BC%D0%B0%D0%BD_%28cropped%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/8/87/%D0%92%D0%BE%D0%BB%D0%BE%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%93%D1%80%D0%BE%D0%B9%D1%81%D0%BC%D0%B0%D0%BD_%28cropped%29.jpg/200px-%D0%92%D0%BE%D0%BB%D0%BE%D0%B4%D0%B8%D0%BC%D0%B8%D1%80_%D0%93%D1%80%D0%BE%D0%B9%D1%81%D0%BC%D0%B0%D0%BD_%28cropped%29.jpg 2x" data-file-width="960" data-file-height="1280" /></a>
-<div class="thumbcaption" style="padding: 0.25em 0; word-wrap: break-word;">Volodymyr Groysman</div>
-</div>
-</div>
-<ul>
-<li><b><a href="/wiki/2016_Ecuador_earthquake" title="2016 Ecuador earthquake">A magnitude 7.8 earthquake</a></b> hits Ecuador, killing at least 350 people and injuring more than 2,500 others.</li>
-<li><b><a href="/wiki/2016_Kumamoto_earthquakes" title="2016 Kumamoto earthquakes">Two earthquakes</a></b> kill at least 40 people and injure more than 3,000 others across <a href="/wiki/Kyushu" title="Kyushu">Kyushu</a>, Japan.</li>
-<li><b><a href="/wiki/Volodymyr_Groysman" title="Volodymyr Groysman">Volodymyr Groysman</a></b> <i>(pictured)</i> is appointed <a href="/wiki/Prime_Minister_of_Ukraine" title="Prime Minister of Ukraine">Prime Minister of Ukraine</a> following the resignation of <b><a href="/wiki/Arseniy_Yatsenyuk" title="Arseniy Yatsenyuk">Arseniy Yatsenyuk</a></b>.</li>
-<li>Argentina <b><a href="/wiki/Argentine_debt_restructuring" title="Argentine debt restructuring">reaches an agreement</a></b> to issue bonds and pay its creditors, ending a 15-year <a href="/wiki/Sovereign_default" title="Sovereign default">sovereign default</a>.</li>
-<li>The <a href="/wiki/Minjoo_Party_of_Korea" title="Minjoo Party of Korea">Minjoo Party of Korea</a> <b><a href="/wiki/South_Korean_legislative_election,_2016" title="South Korean legislative election, 2016">wins a plurality of seats</a></b> in the South Korean <a href="/wiki/National_Assembly_(South_Korea)" title="National Assembly (South Korea)">National Assembly</a>.</li>
-<li>In <a href="/wiki/Golf" title="Golf">golf</a>, <a href="/wiki/Danny_Willett" title="Danny Willett">Danny Willett</a> wins the <b><a href="/wiki/2016_Masters_Tournament" title="2016 Masters Tournament">Masters Tournament</a></b>.</li>
-</ul>
-<ul style="list-style:none; margin-left:0;">
-<li><b><a href="/wiki/Portal:Current_events" title="Portal:Current events">Ongoing events</a></b></li>
-<li><b><a href="/wiki/Deaths_in_2016" title="Deaths in 2016">Recent deaths</a></b>:
-<div class="hlist inline">
-<ul>
-<li><a href="/wiki/William_M._Gray" title="William M. Gray">Bill Gray</a></li>
-<li><a href="/wiki/Malick_Sidib%C3%A9" title="Malick Sidibé">Malick Sidibé</a></li>
-<li><a href="/wiki/Nera_White" title="Nera White">Nera White</a></li>
-</ul>
-</div>
-</li>
-</ul>
-</div>
-</td>
-</tr>
-<tr>
-<td style="padding:2px;">
-<h2 id="mp-otd-h2" style="margin:3px; background:#cedff2; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #a3b0bf; text-align:left; color:#000; padding:0.2em 0.4em;"><span class="mw-headline" id="On_this_day...">On this day...</span></h2>
-</td>
-</tr>
-<tr>
-<td style="color:#000; padding:2px 5px 5px;">
-<div id="mp-otd">
-<p><b><a href="/wiki/April_18" title="April 18">April 18</a></b>: <b><a href="/wiki/Patriots%27_Day" title="Patriots' Day">Patriots' Day</a></b> in <a href="/wiki/Maine" title="Maine">Maine</a> and <a href="/wiki/Massachusetts" title="Massachusetts">Massachusetts</a> (2016); <b><a href="/wiki/Tax_Day" title="Tax Day">Tax Day</a></b> in the United States (2016); <a href="/wiki/List_of_national_independence_days" title="List of national independence days">Independence Day</a> in <b><a href="/wiki/Zimbabwe" title="Zimbabwe">Zimbabwe</a></b> (<a href="/wiki/1980" title="1980">1980</a>)</p>
-<div style="float:right;margin-left:0.5em;" id="mp-otd-img">
-<div class="thumbinner mp-thumb" style="background: transparent; border: none; padding: 0; max-width: 120px;"><a href="/wiki/File:Stpetes.JPG" class="image" title="Saint Peter's Basilica by Giovanni Paolo Pannini"><img alt="Saint Peter's Basilica by Giovanni Paolo Pannini" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Stpetes.JPG/120px-Stpetes.JPG" width="120" height="89" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Stpetes.JPG/180px-Stpetes.JPG 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Stpetes.JPG/240px-Stpetes.JPG 2x" data-file-width="346" data-file-height="256" /></a>
-<div class="thumbcaption" style="padding: 0.25em 0; word-wrap: break-word;">Saint Peter's Basilica by Giovanni Paolo Pannini</div>
-</div>
-</div>
-<ul>
-<li><a href="/wiki/1506" title="1506">1506</a> – Construction of the current <b><a href="/wiki/St._Peter%27s_Basilica" title="St. Peter's Basilica">St. Peter's Basilica</a></b> <i>(interior pictured)</i> in <a href="/wiki/Vatican_City" title="Vatican City">Vatican City</a>, to replace the <a href="/wiki/Old_St._Peter%27s_Basilica" title="Old St. Peter's Basilica">old basilica</a> built in the <span class="nowrap">4th century</span>, began.</li>
-<li><a href="/wiki/1689" title="1689">1689</a> – Provincial <a href="/wiki/Militia_(United_States)" title="Militia (United States)">militia</a> and citizens gathered in <a href="/wiki/Boston" title="Boston">Boston</a>, and <b><a href="/wiki/1689_Boston_revolt" title="1689 Boston revolt">arrested</a></b> officials of the <a href="/wiki/Dominion_of_New_England" title="Dominion of New England">Dominion of New England</a>.</li>
-<li><a href="/wiki/1847" title="1847">1847</a> – <a href="/wiki/Mexican%E2%80%93American_War" title="Mexican–American War">Mexican–American War</a>: <a href="/wiki/Winfield_Scott" title="Winfield Scott">Winfield Scott</a>'s United States troops out-flanked and drove <a href="/wiki/Antonio_L%C3%B3pez_de_Santa_Anna" title="Antonio López de Santa Anna">Santa Anna</a>'s larger Mexican army from a strong defensive position in the <b><a href="/wiki/Battle_of_Cerro_Gordo" title="Battle of Cerro Gordo">Battle of Cerro Gordo</a></b>.</li>
-<li><a href="/wiki/1938" title="1938">1938</a> – <b><a href="/wiki/Superman" title="Superman">Superman</a></b>, created by <a href="/wiki/Jerry_Siegel" title="Jerry Siegel">Jerry Siegel</a> and <a href="/wiki/Joe_Shuster" title="Joe Shuster">Joe Shuster</a>, made his debut in <b><a href="/wiki/Action_Comics_1" title="Action Comics 1"><i>Action Comics</i> #1</a></b>, the first true <a href="/wiki/Superhero" title="Superhero">superhero</a> comic book.</li>
-<li><a href="/wiki/1996" title="1996">1996</a> – Israeli forces <b><a href="/wiki/1996_shelling_of_Qana" title="1996 shelling of Qana">shelled</a></b> <a href="/wiki/Qana" title="Qana">Qana</a>, Lebanon, during <a href="/wiki/Operation_Grapes_of_Wrath" title="Operation Grapes of Wrath">Operation Grapes of Wrath</a>, killing more than 100 civilians and injuring more than 110 others at a <a href="/wiki/United_Nations_Interim_Force_in_Lebanon" title="United Nations Interim Force in Lebanon">UN compound</a>.</li>
-</ul>
-<ul style="list-style:none; margin-left:0;">
-<li>More anniversaries:
-<div class="hlist inline nowraplinks">
-<ul>
-<li><a href="/wiki/April_17" title="April 17">April 17</a></li>
-<li><b><a href="/wiki/April_18" title="April 18">April 18</a></b></li>
-<li><a href="/wiki/April_19" title="April 19">April 19</a></li>
-</ul>
-</div>
-</li>
-</ul>
-<div style="text-align: right;" class="hlist noprint" id="mp-otd-footer">
-<ul>
-<li><b><a href="/wiki/Wikipedia:Selected_anniversaries/April" title="Wikipedia:Selected anniversaries/April">Archive</a></b></li>
-<li><b><a href="https://lists.wikimedia.org/mailman/listinfo/daily-article-l" class="extiw" title="mail:daily-article-l">By email</a></b></li>
-<li><b><a href="/wiki/List_of_historical_anniversaries" title="List of historical anniversaries">List of historical anniversaries</a></b></li>
-</ul>
-<div style="font-size:smaller;">
-<ul>
-<li>Current date: <span class="nowrap">April 18, 2016</span> (<a href="/wiki/Coordinated_Universal_Time" title="Coordinated Universal Time">UTC</a>)</li>
-<li><span class="plainlinks" id="otd-purgelink"><span class="nowrap"><a class="external text" href="//en.wikipedia.org/w/index.php?title=Main_Page&action=purge">Reload this page</a></span></span></li>
-</ul>
-</div>
-</div>
-</div>
-</td>
-</tr>
-</table>
-</td>
-</tr>
-</table>
-<table id="mp-middle" style="width:100%; margin:4px 0 0 0; background:none; border-spacing: 0px;">
-<tr>
-<td class="MainPageBG" style="width:100%; border:1px solid #f2cedd; background:#fff5fa; vertical-align:top; color:#000;">
-<table id="mp-center" style="width:100%; vertical-align:top; background:#fff5fa; color:#000;">
-<tr>
-<td style="padding:2px;">
-<h2 id="mp-tfl-h2" style="margin:3px; background:#f2cedd; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #bfa3af; text-align:left; color:#000; padding:0.2em 0.4em"><span class="mw-headline" id="From_today.27s_featured_list">From today's featured list</span></h2>
-</td>
-</tr>
-<tr>
-<td style="color:#000;">
-<div id="mp-tfl" style="padding:2px 5px;">
-<div id="mp-tfl-img" style="float:right;margin:0.5em 0 0.4em 0.9em;">
-<div class="thumbinner mp-thumb" style="background: transparent; border: none; padding: 0; max-width: 125px;"><a href="/wiki/File:Apollo_11_Flown_Silver_Robbins_Medallion_(SN-416).jpg" class="image"><img alt="Apollo 11 Flown Silver Robbins Medallion (SN-416).jpg" src="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Apollo_11_Flown_Silver_Robbins_Medallion_%28SN-416%29.jpg/125px-Apollo_11_Flown_Silver_Robbins_Medallion_%28SN-416%29.jpg" width="125" height="63" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Apollo_11_Flown_Silver_Robbins_Medallion_%28SN-416%29.jpg/188px-Apollo_11_Flown_Silver_Robbins_Medallion_%28SN-416%29.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/6/6f/Apollo_11_Flown_Silver_Robbins_Medallion_%28SN-416%29.jpg/250px-Apollo_11_Flown_Silver_Robbins_Medallion_%28SN-416%29.jpg 2x" data-file-width="3654" data-file-height="1851" /></a></div>
-</div>
-<p><b><a href="/wiki/NASA_space-flown_Gemini_and_Apollo_medallions" title="NASA space-flown Gemini and Apollo medallions">NASA space-flown Gemini and Apollo medallions</a></b> were mission-specific commemorative <a href="/wiki/Medal" title="Medal">medallions</a>—often <a href="/wiki/Astronaut" title="Astronaut">astronaut</a>-designed—which were approved by <a href="/wiki/NASA" title="NASA">NASA</a> and carried aboard the mission spacecraft into orbit. Beginning with the first manned <a href="/wiki/Project_Gemini" title="Project Gemini">Gemini</a> mission in 1965, commemorative medallions were prepared for the astronauts at their request. These were produced by a company only known as Fliteline and were struck either in a pewter-colored base metal, sometimes painted a gold color, or <a href="/wiki/Sterling_silver" title="Sterling silver">sterling silver</a>, and were flown on all 10 manned Gemini missions. The Robbins Company of Attleboro, Massachusetts, was contracted in 1968 to produce commemorative medallions beginning with <a href="/wiki/Apollo_7" title="Apollo 7">Apollo 7</a>, the first manned Apollo flight since the <a href="/wiki/Apollo_1_disaster" title="Apollo 1 disaster" class="mw-redirect">Apollo 1 disaster</a>. These were purchased by astronauts and support crew personnel at NASA Astronaut Flight Office, and a total of over 3,000 sterling silver Robbins medallions were flown into space across the 12 manned flights of the Apollo program. Some of these were later sold in public auction for up to $60,000. (<b><a href="/wiki/NASA_space-flown_Gemini_and_Apollo_medallions" title="NASA space-flown Gemini and Apollo medallions">Full list...</a></b>)</p>
-<ul style="list-style:none; margin-left:0; text-align:right;">
-<li>Recently featured:
-<div class="hlist inline">
-<ul>
-<li><a href="/wiki/List_of_scheduled_monuments_in_Bath_and_North_East_Somerset" title="List of scheduled monuments in Bath and North East Somerset">Scheduled monuments in Bath and North East Somerset</a></li>
-<li><a href="/wiki/List_of_aircraft_operated_by_Scandinavian_Airlines" title="List of aircraft operated by Scandinavian Airlines">Aircraft operated by Scandinavian Airlines</a></li>
-<li><a href="/wiki/List_of_works_by_Joseph_Priestley" title="List of works by Joseph Priestley">Works by Joseph Priestley</a></li>
-</ul>
-</div>
-</li>
-</ul>
-<div style="text-align:right;" class="hlist noprint" id="mp-tfl-footer">
-<ul>
-<li><b><a href="/wiki/Wikipedia:Today%27s_featured_list/April_2016" title="Wikipedia:Today's featured list/April 2016">Archive</a></b></li>
-<li><b><a href="/wiki/Wikipedia:Featured_lists" title="Wikipedia:Featured lists">More featured lists...</a></b></li>
-</ul>
-</div>
-</div>
-</td>
-</tr>
-</table>
-</td>
-</tr>
-</table>
-<table id="mp-lower" style="margin:4px 0 0 0; width:100%; background:none; border-spacing: 0px;">
-<tr>
-<td class="MainPageBG" style="width:100%; border:1px solid #ddcef2; background:#faf5ff; vertical-align:top; color:#000;">
-<table id="mp-bottom" style="width:100%; vertical-align:top; background:#faf5ff; color:#000;">
-<tr>
-<td style="padding:2px;">
-<h2 id="mp-tfp-h2" style="margin:3px; background:#ddcef2; font-family:inherit; font-size:120%; font-weight:bold; border:1px solid #afa3bf; text-align:left; color:#000; padding:0.2em 0.4em"><span class="mw-headline" id="Today.27s_featured_picture">Today's featured picture</span></h2>
-</td>
-</tr>
-<tr>
-<td style="color:#000; padding:2px;">
-<div id="mp-tfp">
-<table style="margin:0 3px 3px; width:100%; text-align:left; background-color:transparent; border-collapse: collapse;">
-<tr>
-<td style="padding:0 0.9em 0 0;"><a href="/wiki/File:Sidney_Hall_-_Urania%27s_Mirror_-_Libra.jpg" class="image" title="Libra (constellation)"><img alt="Libra (constellation)" src="//upload.wikimedia.org/wikipedia/commons/thumb/0/00/Sidney_Hall_-_Urania%27s_Mirror_-_Libra.jpg/350px-Sidney_Hall_-_Urania%27s_Mirror_-_Libra.jpg" width="350" height="245" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/0/00/Sidney_Hall_-_Urania%27s_Mirror_-_Libra.jpg/525px-Sidney_Hall_-_Urania%27s_Mirror_-_Libra.jpg 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/0/00/Sidney_Hall_-_Urania%27s_Mirror_-_Libra.jpg/700px-Sidney_Hall_-_Urania%27s_Mirror_-_Libra.jpg 2x" data-file-width="3586" data-file-height="2506" /></a></td>
-<td style="padding:0 6px 0 0">
-<p>An illustration from <i><a href="/wiki/Urania%27s_Mirror" title="Urania's Mirror">Urania's Mirror</a></i> (1825) depicting the constellation <b><a href="/wiki/Libra_(constellation)" title="Libra (constellation)">Libra</a></b>. This faint constellation, which has no <a href="/wiki/Apparent_magnitude" title="Apparent magnitude">first magnitude</a> <a href="/wiki/Star" title="Star">stars</a>, is located between <a href="/wiki/Virgo_(constellation)" title="Virgo (constellation)">Virgo</a> to the west and <a href="/wiki/Scorpius" title="Scorpius">Scorpius</a> to the east. Both <a href="/wiki/Ancient_Rome" title="Ancient Rome">Roman</a> and <a href="/wiki/Babylonian_astronomy" title="Babylonian astronomy">Babylonian astronomy</a> likened the constellation to a pair of scales, though the <a href="/wiki/Ancient_Greeks" title="Ancient Greeks" class="mw-redirect">Ancient Greeks</a> held it to be <a href="/wiki/Scorpius" title="Scorpius">the scorpion's</a> claws. Libra is one of the constellations of the <a href="/wiki/Zodiac" title="Zodiac">zodiac</a>; in <a href="/wiki/Western_astrology" title="Western astrology">Western astrology</a>, <a href="/wiki/Libra_(astrology)" title="Libra (astrology)">Libra</a> covers the period between September 22 and October 21.</p>
-<p><small>Illustration: <a href="/wiki/Sidney_Hall" title="Sidney Hall">Sidney Hall</a>; restoration: <a href="/wiki/User:Adam_Cuerden" title="User:Adam Cuerden">Adam Cuerden</a></small></p>
-<ul style="list-style:none; margin-left:0; text-align:right;">
-<li>Recently featured:
-<div class="hlist inline">
-<ul>
-<li><a href="/wiki/Template:POTD/2016-04-17" title="Template:POTD/2016-04-17">Balearic green toad</a></li>
-<li><a href="/wiki/Template:POTD/2016-04-16" title="Template:POTD/2016-04-16">Sarah Vaughan</a></li>
-<li><a href="/wiki/Template:POTD/2016-04-15" title="Template:POTD/2016-04-15"><i>Girl at Sewing Machine</i></a></li>
-</ul>
-</div>
-</li>
-</ul>
-<div style="text-align:right;" class="hlist noprint">
-<ul>
-<li><b><a href="/wiki/Wikipedia:Picture_of_the_day/April_2016" title="Wikipedia:Picture of the day/April 2016">Archive</a></b></li>
-<li><b><a href="/wiki/Wikipedia:Featured_pictures" title="Wikipedia:Featured pictures">More featured pictures...</a></b></li>
-</ul>
-</div>
-</td>
-</tr>
-</table>
-</div>
-</td>
-</tr>
-</table>
-</td>
-</tr>
-</table>
-<div id="mp-other" style="padding-top:4px; padding-bottom:2px;">
-<h2><span class="mw-headline" id="Other_areas_of_Wikipedia">Other areas of Wikipedia</span></h2>
-<ul>
-<li><b><a href="/wiki/Wikipedia:Community_portal" title="Wikipedia:Community portal">Community portal</a></b> – Bulletin board, projects, resources and activities covering a wide range of Wikipedia areas.</li>
-<li><b><a href="/wiki/Wikipedia:Help_desk" title="Wikipedia:Help desk">Help desk</a></b> – Ask questions about using Wikipedia.</li>
-<li><b><a href="/wiki/Wikipedia:Local_Embassy" title="Wikipedia:Local Embassy">Local embassy</a></b> – For Wikipedia-related communication in languages other than English.</li>
-<li><b><a href="/wiki/Wikipedia:Reference_desk" title="Wikipedia:Reference desk">Reference desk</a></b> – Serving as virtual librarians, Wikipedia volunteers tackle your questions on a wide range of subjects.</li>
-<li><b><a href="/wiki/Wikipedia:News" title="Wikipedia:News">Site news</a></b> – Announcements, updates, articles and press releases on Wikipedia and the Wikimedia Foundation.</li>
-<li><b><a href="/wiki/Wikipedia:Village_pump" title="Wikipedia:Village pump">Village pump</a></b> – For discussions about Wikipedia itself, including areas for technical issues and policies.</li>
-</ul>
-</div>
-<div id="mp-sister">
-<h2><span class="mw-headline" id="Wikipedia.27s_sister_projects">Wikipedia's sister projects</span></h2>
-<p>Wikipedia is hosted by the <a href="/wiki/Wikimedia_Foundation" title="Wikimedia Foundation">Wikimedia Foundation</a>, a non-profit organization that also hosts a range of other <a href="//wikimediafoundation.org/wiki/Our_projects" class="extiw" title="wmf:Our projects">projects</a>:</p>
-<table class="layout plainlinks" style="width:100%; margin:auto; text-align:left; background:transparent;">
-<tr>
-<td style="text-align:center; padding:4px;"><a href="//commons.wikimedia.org/wiki/" title="Commons"><img alt="Commons" src="//upload.wikimedia.org/wikipedia/en/9/9d/Commons-logo-31px.png" width="31" height="41" data-file-width="31" data-file-height="41" /></a></td>
-<td style="width:33%; padding:4px;"><b><a class="external text" href="//commons.wikimedia.org/">Commons</a></b><br />
-Free media repository</td>
-<td style="text-align:center; padding:4px;"><a href="//www.mediawiki.org/wiki/" title="MediaWiki"><img alt="MediaWiki" src="//upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Mediawiki-logo.png/35px-Mediawiki-logo.png" width="35" height="26" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Mediawiki-logo.png/53px-Mediawiki-logo.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/3/3d/Mediawiki-logo.png/70px-Mediawiki-logo.png 2x" data-file-width="135" data-file-height="102" /></a></td>
-<td style="width:33%; padding:4px;"><b><a class="external text" href="//mediawiki.org/">MediaWiki</a></b><br />
-Wiki software development</td>
-<td style="text-align:center; padding:4px;"><a href="//meta.wikimedia.org/wiki/" title="Meta-Wiki"><img alt="Meta-Wiki" src="//upload.wikimedia.org/wikipedia/en/b/bc/Meta-logo-35px.png" width="35" height="35" data-file-width="35" data-file-height="35" /></a></td>
-<td style="width:33%; padding:4px;"><b><a class="external text" href="//meta.wikimedia.org/">Meta-Wiki</a></b><br />
-Wikimedia project coordination</td>
-</tr>
-<tr>
-<td style="text-align:center; padding:4px;"><a href="//en.wikibooks.org/wiki/" title="Wikibooks"><img alt="Wikibooks" src="//upload.wikimedia.org/wikipedia/en/7/7f/Wikibooks-logo-35px.png" width="35" height="35" data-file-width="35" data-file-height="35" /></a></td>
-<td style="padding:4px;"><b><a class="external text" href="//en.wikibooks.org/">Wikibooks</a></b><br />
-Free textbooks and manuals</td>
-<td style="text-align:center; padding:3px;"><a href="//www.wikidata.org/wiki/" title="Wikidata"><img alt="Wikidata" src="//upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Wikidata-logo.svg/47px-Wikidata-logo.svg.png" width="47" height="26" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Wikidata-logo.svg/71px-Wikidata-logo.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/f/ff/Wikidata-logo.svg/94px-Wikidata-logo.svg.png 2x" data-file-width="1050" data-file-height="590" /></a></td>
-<td style="padding:4px;"><b><a class="external text" href="//www.wikidata.org/">Wikidata</a></b><br />
-Free knowledge base</td>
-<td style="text-align:center; padding:4px;"><a href="//en.wikinews.org/wiki/" title="Wikinews"><img alt="Wikinews" src="//upload.wikimedia.org/wikipedia/en/6/60/Wikinews-logo-51px.png" width="51" height="30" data-file-width="51" data-file-height="30" /></a></td>
-<td style="padding:4px;"><b><a class="external text" href="//en.wikinews.org/">Wikinews</a></b><br />
-Free-content news</td>
-</tr>
-<tr>
-<td style="text-align:center; padding:4px;"><a href="//en.wikiquote.org/wiki/" title="Wikiquote"><img alt="Wikiquote" src="//upload.wikimedia.org/wikipedia/en/4/46/Wikiquote-logo-51px.png" width="51" height="41" data-file-width="51" data-file-height="41" /></a></td>
-<td style="padding:4px;"><b><a class="external text" href="//en.wikiquote.org/">Wikiquote</a></b><br />
-Collection of quotations</td>
-<td style="text-align:center; padding:4px;"><a href="//en.wikisource.org/wiki/" title="Wikisource"><img alt="Wikisource" src="//upload.wikimedia.org/wikipedia/en/b/b6/Wikisource-logo-35px.png" width="35" height="37" data-file-width="35" data-file-height="37" /></a></td>
-<td style="padding:4px;"><b><a class="external text" href="//en.wikisource.org/">Wikisource</a></b><br />
-Free-content library</td>
-<td style="text-align:center; padding:4px;"><a href="//species.wikimedia.org/wiki/" title="Wikispecies"><img alt="Wikispecies" src="//upload.wikimedia.org/wikipedia/en/b/bf/Wikispecies-logo-35px.png" width="35" height="41" data-file-width="35" data-file-height="41" /></a></td>
-<td style="padding:4px;"><b><a class="external text" href="//species.wikimedia.org/">Wikispecies</a></b><br />
-Directory of species</td>
-</tr>
-<tr>
-<td style="text-align:center; padding:4px;"><a href="//en.wikiversity.org/wiki/" title="Wikiversity"><img alt="Wikiversity" src="//upload.wikimedia.org/wikipedia/en/e/e3/Wikiversity-logo-41px.png" width="41" height="32" data-file-width="41" data-file-height="32" /></a></td>
-<td style="padding:4px;"><b><a class="external text" href="//en.wikiversity.org/">Wikiversity</a></b><br />
-Free learning materials and activities</td>
-<td style="text-align:center; padding:4px;"><a href="//en.wikivoyage.org/wiki/" title="Wikivoyage"><img alt="Wikivoyage" src="//upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Wikivoyage-Logo-v3-icon.svg/35px-Wikivoyage-Logo-v3-icon.svg.png" width="35" height="35" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Wikivoyage-Logo-v3-icon.svg/53px-Wikivoyage-Logo-v3-icon.svg.png 1.5x, //upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Wikivoyage-Logo-v3-icon.svg/70px-Wikivoyage-Logo-v3-icon.svg.png 2x" data-file-width="193" data-file-height="193" /></a></td>
-<td style="padding:4px;"><b><a class="external text" href="//en.wikivoyage.org/">Wikivoyage</a></b><br />
-Free travel guide</td>
-<td style="text-align:center; padding:4px;"><a href="//en.wiktionary.org/wiki/" title="Wiktionary"><img alt="Wiktionary" src="//upload.wikimedia.org/wikipedia/en/f/f2/Wiktionary-logo-51px.png" width="51" height="35" data-file-width="51" data-file-height="35" /></a></td>
-<td style="padding:4px;"><b><a class="external text" href="//en.wiktionary.org/">Wiktionary</a></b><br />
-Dictionary and thesaurus</td>
-</tr>
-</table>
-</div>
-<div id="mp-lang">
-<h2><span class="mw-headline" id="Wikipedia_languages">Wikipedia languages</span></h2>
-<div id="lang" class="nowraplinks nourlexpansion plainlinks">
-<p>This Wikipedia is written in <a href="/wiki/English_language" title="English language">English</a>. Started in 2001<span style="display:none"> (<span class="bday dtstart published updated">2001</span>)</span>, it currently contains <a href="/wiki/Special:Statistics" title="Special:Statistics">5,130,255</a> articles. Many other Wikipedias are available; some of the largest are listed below.</p>
-<ul>
-<li id="lang-3">More than 1,000,000 articles:
-<div class="hlist inline">
-<ul>
-<li><a class="external text" href="//de.wikipedia.org/wiki/"><span class="autonym" title="German (de:)" lang="de" xml:lang="de">Deutsch</span></a></li>
-<li><a class="external text" href="//es.wikipedia.org/wiki/"><span class="autonym" title="Spanish (es:)" lang="es" xml:lang="es">Español</span></a></li>
-<li><a class="external text" href="//fr.wikipedia.org/wiki/"><span class="autonym" title="French (fr:)" lang="fr" xml:lang="fr">Français</span></a></li>
-<li><a class="external text" href="//it.wikipedia.org/wiki/"><span class="autonym" title="Italian (it:)" lang="it" xml:lang="it">Italiano</span></a></li>
-<li><a class="external text" href="//nl.wikipedia.org/wiki/"><span class="autonym" title="Dutch (nl:)" lang="nl" xml:lang="nl">Nederlands</span></a></li>
-<li><a class="external text" href="//ja.wikipedia.org/wiki/"><span class="autonym" title="Japanese (ja:)" lang="ja" xml:lang="ja">日本語</span></a></li>
-<li><a class="external text" href="//pl.wikipedia.org/wiki/"><span class="autonym" title="Polish (pl:)" lang="pl" xml:lang="pl">Polski</span></a></li>
-<li><a class="external text" href="//ru.wikipedia.org/wiki/"><span class="autonym" title="Russian (ru:)" lang="ru" xml:lang="ru">Русский</span></a></li>
-<li><a class="external text" href="//sv.wikipedia.org/wiki/"><span class="autonym" title="Swedish (sv:)" lang="sv" xml:lang="sv">Svenska</span></a></li>
-<li><a class="external text" href="//vi.wikipedia.org/wiki/"><span class="autonym" title="Vietnamese (vi:)" lang="vi" xml:lang="vi">Tiếng Việt</span></a></li>
-</ul>
-</div>
-</li>
-<li id="lang-2">More than 250,000 articles:
-<div class="hlist inline">
-<ul>
-<li><a class="external text" href="//ar.wikipedia.org/wiki/"><span class="autonym" title="Arabic (ar:)" lang="ar" xml:lang="ar">العربية</span></a></li>
-<li><a class="external text" href="//id.wikipedia.org/wiki/"><span class="autonym" title="Indonesian (id:)" lang="id" xml:lang="id">Bahasa Indonesia</span></a></li>
-<li><a class="external text" href="//ms.wikipedia.org/wiki/"><span class="autonym" title="Malay (ms:)" lang="ms" xml:lang="ms">Bahasa Melayu</span></a></li>
-<li><a class="external text" href="//ca.wikipedia.org/wiki/"><span class="autonym" title="Catalan (ca:)" lang="ca" xml:lang="ca">Català</span></a></li>
-<li><a class="external text" href="//cs.wikipedia.org/wiki/"><span class="autonym" title="Czech (cs:)" lang="cs" xml:lang="cs">Čeština</span></a></li>
-<li><a class="external text" href="//fa.wikipedia.org/wiki/"><span class="autonym" title="Persian (fa:)" lang="fa" xml:lang="fa">فارسی</span></a></li>
-<li><a class="external text" href="//ko.wikipedia.org/wiki/"><span class="autonym" title="Korean (ko:)" lang="ko" xml:lang="ko">한국어</span></a></li>
-<li><a class="external text" href="//hu.wikipedia.org/wiki/"><span class="autonym" title="Hungarian (hu:)" lang="hu" xml:lang="hu">Magyar</span></a></li>
-<li><a class="external text" href="//no.wikipedia.org/wiki/"><span class="autonym" title="Norwegian (no:)" lang="no" xml:lang="no">Norsk bokmål</span></a></li>
-<li><a class="external text" href="//pt.wikipedia.org/wiki/"><span class="autonym" title="Portuguese (pt:)" lang="pt" xml:lang="pt">Português</span></a></li>
-<li><a class="external text" href="//ro.wikipedia.org/wiki/"><span class="autonym" title="Romanian (ro:)" lang="ro" xml:lang="ro">Română</span></a></li>
-<li><a class="external text" href="//sr.wikipedia.org/wiki/"><span class="autonym" title="Serbian (sr:)" lang="sr" xml:lang="sr">Srpski</span></a></li>
-<li><a class="external text" href="//sh.wikipedia.org/wiki/"><span class="autonym" title="Serbo-Croatian (sh:)" lang="sh" xml:lang="sh">Srpskohrvatski</span></a></li>
-<li><a class="external text" href="//fi.wikipedia.org/wiki/"><span class="autonym" title="Finnish (fi:)" lang="fi" xml:lang="fi">Suomi</span></a></li>
-<li><a class="external text" href="//tr.wikipedia.org/wiki/"><span class="autonym" title="Turkish (tr:)" lang="tr" xml:lang="tr">Türkçe</span></a></li>
-<li><a class="external text" href="//uk.wikipedia.org/wiki/"><span class="autonym" title="Ukrainian (uk:)" lang="uk" xml:lang="uk">Українська</span></a></li>
-<li><a class="external text" href="//zh.wikipedia.org/wiki/"><span class="autonym" title="Chinese (zh:)" lang="zh" xml:lang="zh">中文</span></a></li>
-</ul>
-</div>
-</li>
-<li id="lang-1">More than 50,000 articles:
-<div class="hlist inline">
-<ul>
-<li><a class="external text" href="//bs.wikipedia.org/wiki/"><span class="autonym" title="Bosnian (bs:)" lang="bs" xml:lang="bs">Bosanski</span></a></li>
-<li><a class="external text" href="//bg.wikipedia.org/wiki/"><span class="autonym" title="Bulgarian (bg:)" lang="bg" xml:lang="bg">Български</span></a></li>
-<li><a class="external text" href="//da.wikipedia.org/wiki/"><span class="autonym" title="Danish (da:)" lang="da" xml:lang="da">Dansk</span></a></li>
-<li><a class="external text" href="//et.wikipedia.org/wiki/"><span class="autonym" title="Estonian (et:)" lang="et" xml:lang="et">Eesti</span></a></li>
-<li><a class="external text" href="//el.wikipedia.org/wiki/"><span class="autonym" title="Greek (el:)" lang="el" xml:lang="el">Ελληνικά</span></a></li>
-<li><a class="external text" href="//simple.wikipedia.org/wiki/"><span class="autonym" title="Simple English (simple:)" lang="simple" xml:lang="simple">English (simple form)</span></a></li>
-<li><a class="external text" href="//eo.wikipedia.org/wiki/"><span class="autonym" title="Esperanto (eo:)" lang="eo" xml:lang="eo">Esperanto</span></a></li>
-<li><a class="external text" href="//eu.wikipedia.org/wiki/"><span class="autonym" title="Basque (eu:)" lang="eu" xml:lang="eu">Euskara</span></a></li>
-<li><a class="external text" href="//gl.wikipedia.org/wiki/"><span class="autonym" title="Galician (gl:)" lang="gl" xml:lang="gl">Galego</span></a></li>
-<li><a class="external text" href="//he.wikipedia.org/wiki/"><span class="autonym" title="Hebrew (he:)" lang="he" xml:lang="he">עברית</span></a></li>
-<li><a class="external text" href="//hr.wikipedia.org/wiki/"><span class="autonym" title="Croatian (hr:)" lang="hr" xml:lang="hr">Hrvatski</span></a></li>
-<li><a class="external text" href="//lv.wikipedia.org/wiki/"><span class="autonym" title="Latvian (lv:)" lang="lv" xml:lang="lv">Latviešu</span></a></li>
-<li><a class="external text" href="//lt.wikipedia.org/wiki/"><span class="autonym" title="Lithuanian (lt:)" lang="lt" xml:lang="lt">Lietuvių</span></a></li>
-<li><a class="external text" href="//nn.wikipedia.org/wiki/"><span class="autonym" title="Norwegian Nynorsk (nn:)" lang="nn" xml:lang="nn">Norsk nynorsk</span></a></li>
-<li><a class="external text" href="//sk.wikipedia.org/wiki/"><span class="autonym" title="Slovak (sk:)" lang="sk" xml:lang="sk">Slovenčina</span></a></li>
-<li><a class="external text" href="//sl.wikipedia.org/wiki/"><span class="autonym" title="Slovenian (sl:)" lang="sl" xml:lang="sl">Slovenščina</span></a></li>
-<li><a class="external text" href="//th.wikipedia.org/wiki/"><span class="autonym" title="Thai (th:)" lang="th" xml:lang="th">ไทย</span></a></li>
-</ul>
-</div>
-</li>
-</ul>
-</div>
-<div id="metalink" style="text-align:center;" class="plainlinks"><b><a href="//meta.wikimedia.org/wiki/List_of_Wikipedias" class="extiw" title="meta:List of Wikipedias">Complete list of Wikipedias</a></b></div>
-</div>
-
-
-<!--
-NewPP limit report
-Parsed by mw1165
-Cached time: 20160418214823
-Cache expiry: 3600
-Dynamic content: true
-CPU time usage: 0.422 seconds
-Real time usage: 1.946 seconds
-Preprocessor visited node count: 3377/1000000
-Preprocessor generated node count: 0/1500000
-Post‐expand include size: 110267/2097152 bytes
-Template argument size: 6549/2097152 bytes
-Highest expansion depth: 14/40
-Expensive parser function count: 6/500
-Lua time usage: 0.133/10.000 seconds
-Lua memory usage: 2.26 MB/50 MB
-Number of Wikibase entities loaded: 0-->
-
-<!--
-Transclusion expansion time report (%,ms,calls,template)
-100.00% 1745.000 1 - -total
- 68.21% 1190.282 1 - Wikipedia:Main_Page/Tomorrow
- 23.43% 408.911 1 - Template:POTD_protected/2016-04-19
- 23.13% 403.643 2 - Template:Convert
- 21.11% 368.420 1 - Template:Did_you_know/Queue/4
- 20.98% 366.146 1 - User:DYKUpdateBot/REMOVE_THIS_LINE
- 20.07% 350.195 1 - Template:Mbox
- 14.28% 249.228 1 - Wikipedia:Selected_anniversaries/April_18
- 9.40% 163.971 8 - Template:Main_page_image
- 9.11% 159.042 1 - Wikipedia:Selected_anniversaries/April_19
--->
-
-<!-- Saved in parser cache with key enwiki:pcache:idhash:15580374-0!*!0!!*!4!* and timestamp 20160418214821 and revision id 696846920
- -->
-<noscript><img src="//en.wikipedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" title="" width="1" height="1" style="border: none; position: absolute;" /></noscript></div> <div class="printfooter">
- Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Main_Page&oldid=696846920">https://en.wikipedia.org/w/index.php?title=Main_Page&oldid=696846920</a>" </div>
- <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div> <div class="visualClear"></div>
- </div>
- </div>
- <div id="mw-navigation">
- <h2>Navigation menu</h2>
-
- <div id="mw-head">
- <div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label">
- <h3 id="p-personal-label">Personal tools</h3>
- <ul>
- <li id="pt-anonuserpage">Not logged in</li><li id="pt-anontalk"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n">Talk</a></li><li id="pt-anoncontribs"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y">Contributions</a></li><li id="pt-createaccount"><a href="/w/index.php?title=Special:UserLogin&returnto=Main+Page&returntoquery=mainpage%3D&type=signup" title="You are encouraged to create an account and log in; however, it is not mandatory">Create account</a></li><li id="pt-login"><a href="/w/index.php?title=Special:UserLogin&returnto=Main+Page&returntoquery=mainpage%3D" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o">Log in</a></li> </ul>
- </div>
- <div id="left-navigation">
- <div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label">
- <h3 id="p-namespaces-label">Namespaces</h3>
- <ul>
- <li id="ca-nstab-main" class="selected"><span><a href="/wiki/Main_Page" title="View the content page [c]" accesskey="c">Main Page</a></span></li>
- <li id="ca-talk"><span><a href="/wiki/Talk:Main_Page" title="Discussion about the content page [t]" accesskey="t" rel="discussion">Talk</a></span></li>
- </ul>
- </div>
- <div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label">
- <h3 id="p-variants-label">
- <span>Variants</span><a href="#"></a>
- </h3>
-
- <div class="menu">
- <ul>
- </ul>
- </div>
- </div>
- </div>
- <div id="right-navigation">
- <div id="p-views" role="navigation" class="vectorTabs" aria-labelledby="p-views-label">
- <h3 id="p-views-label">Views</h3>
- <ul>
- <li id="ca-view" class="selected"><span><a href="/wiki/Main_Page" >Read</a></span></li>
- <li id="ca-viewsource"><span><a href="/w/index.php?title=Main_Page&action=edit" title="This page is protected. You can view its source [e]" accesskey="e">View source</a></span></li>
- <li id="ca-history" class="collapsible"><span><a href="/w/index.php?title=Main_Page&action=history" title="Past revisions of this page [h]" accesskey="h">View history</a></span></li>
- </ul>
- </div>
- <div id="p-cactions" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-cactions-label">
- <h3 id="p-cactions-label"><span>More</span><a href="#"></a></h3>
-
- <div class="menu">
- <ul>
- </ul>
- </div>
- </div>
- <div id="p-search" role="search">
- <h3>
- <label for="searchInput">Search</label>
- </h3>
-
- <form action="/w/index.php" id="searchform">
- <div id="simpleSearch">
- <input type="search" name="search" placeholder="Search" title="Search Wikipedia [f]" accesskey="f" id="searchInput"/><input type="hidden" value="Special:Search" name="title"/><input type="submit" name="fulltext" value="Search" title="Search Wikipedia for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/><input type="submit" name="go" value="Go" title="Go to a page with this exact name if it exists" id="searchButton" class="searchButton"/> </div>
- </form>
- </div>
- </div>
- </div>
- <div id="mw-panel">
- <div id="p-logo" role="banner"><a class="mw-wiki-logo" href="/wiki/Main_Page" title="Visit the main page"></a></div>
- <div class="portal" role="navigation" id='p-navigation' aria-labelledby='p-navigation-label'>
- <h3 id='p-navigation-label'>Navigation</h3>
-
- <div class="body">
- <ul>
- <li id="n-mainpage-description"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z">Main page</a></li><li id="n-contents"><a href="/wiki/Portal:Contents" title="Guides to browsing Wikipedia">Contents</a></li><li id="n-featuredcontent"><a href="/wiki/Portal:Featured_content" title="Featured content – the best of Wikipedia">Featured content</a></li><li id="n-currentevents"><a href="/wiki/Portal:Current_events" title="Find background information on current events">Current events</a></li><li id="n-randompage"><a href="/wiki/Special:Random" title="Load a random article [x]" accesskey="x">Random article</a></li><li id="n-sitesupport"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" title="Support us">Donate to Wikipedia</a></li><li id="n-shoplink"><a href="//shop.wikimedia.org" title="Visit the Wikipedia store">Wikipedia store</a></li> </ul>
- </div>
- </div>
- <div class="portal" role="navigation" id='p-interaction' aria-labelledby='p-interaction-label'>
- <h3 id='p-interaction-label'>Interaction</h3>
-
- <div class="body">
- <ul>
- <li id="n-help"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia">Help</a></li><li id="n-aboutsite"><a href="/wiki/Wikipedia:About" title="Find out about Wikipedia">About Wikipedia</a></li><li id="n-portal"><a href="/wiki/Wikipedia:Community_portal" title="About the project, what you can do, where to find things">Community portal</a></li><li id="n-recentchanges"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li><li id="n-contactpage"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia">Contact page</a></li> </ul>
- </div>
- </div>
- <div class="portal" role="navigation" id='p-tb' aria-labelledby='p-tb-label'>
- <h3 id='p-tb-label'>Tools</h3>
-
- <div class="body">
- <ul>
- <li id="t-whatlinkshere"><a href="/wiki/Special:WhatLinksHere/Main_Page" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j">What links here</a></li><li id="t-recentchangeslinked"><a href="/wiki/Special:RecentChangesLinked/Main_Page" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li id="t-upload"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u">Upload file</a></li><li id="t-specialpages"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-permalink"><a href="/w/index.php?title=Main_Page&oldid=696846920" title="Permanent link to this revision of the page">Permanent link</a></li><li id="t-info"><a href="/w/index.php?title=Main_Page&action=info" title="More information about this page">Page information</a></li><li id="t-wikibase"><a href="//www.wikidata.org/wiki/Q5296" title="Link to connected data repository item [g]" accesskey="g">Wikidata item</a></li><li id="t-cite"><a href="/w/index.php?title=Special:CiteThisPage&page=Main_Page&id=696846920" title="Information on how to cite this page">Cite this page</a></li> </ul>
- </div>
- </div>
- <div class="portal" role="navigation" id='p-coll-print_export' aria-labelledby='p-coll-print_export-label'>
- <h3 id='p-coll-print_export-label'>Print/export</h3>
-
- <div class="body">
- <ul>
- <li id="coll-create_a_book"><a href="/w/index.php?title=Special:Book&bookcmd=book_creator&referer=Main+Page">Create a book</a></li><li id="coll-download-as-rdf2latex"><a href="/w/index.php?title=Special:Book&bookcmd=render_article&arttitle=Main+Page&returnto=Main+Page&oldid=696846920&writer=rdf2latex">Download as PDF</a></li><li id="t-print"><a href="/w/index.php?title=Main_Page&printable=yes" title="Printable version of this page [p]" accesskey="p">Printable version</a></li> </ul>
- </div>
- </div>
- <div class="portal" role="navigation" id='p-wikibase-otherprojects' aria-labelledby='p-wikibase-otherprojects-label'>
- <h3 id='p-wikibase-otherprojects-label'>In other projects</h3>
-
- <div class="body">
- <ul>
- <li class="wb-otherproject-link wb-otherproject-commons"><a href="https://commons.wikimedia.org/wiki/Main_Page" hreflang="en">Wikimedia Commons</a></li><li class="wb-otherproject-link wb-otherproject-meta"><a href="https://meta.wikimedia.org/wiki/Main_Page" hreflang="en">Meta-Wiki</a></li><li class="wb-otherproject-link wb-otherproject-species"><a href="https://species.wikimedia.org/wiki/Main_Page" hreflang="en">Wikispecies</a></li><li class="wb-otherproject-link wb-otherproject-wikibooks"><a href="https://en.wikibooks.org/wiki/Main_Page" hreflang="en">Wikibooks</a></li><li class="wb-otherproject-link wb-otherproject-wikidata"><a href="https://www.wikidata.org/wiki/Wikidata:Main_Page" hreflang="en">Wikidata</a></li><li class="wb-otherproject-link wb-otherproject-wikinews"><a href="https://en.wikinews.org/wiki/Main_Page" hreflang="en">Wikinews</a></li><li class="wb-otherproject-link wb-otherproject-wikiquote"><a href="https://en.wikiquote.org/wiki/Main_Page" hreflang="en">Wikiquote</a></li><li class="wb-otherproject-link wb-otherproject-wikisource"><a href="https://en.wikisource.org/wiki/Main_Page" hreflang="en">Wikisource</a></li><li class="wb-otherproject-link wb-otherproject-wikiversity"><a href="https://en.wikiversity.org/wiki/Wikiversity:Main_Page" hreflang="en">Wikiversity</a></li><li class="wb-otherproject-link wb-otherproject-wikivoyage"><a href="https://en.wikivoyage.org/wiki/Main_Page" hreflang="en">Wikivoyage</a></li> </ul>
- </div>
- </div>
- <div class="portal" role="navigation" id='p-lang' aria-labelledby='p-lang-label'>
- <h3 id='p-lang-label'>Languages</h3>
-
- <div class="body">
- <ul>
- <li class="interlanguage-link interwiki-simple"><a href="//simple.wikipedia.org/wiki/" title="Simple English" lang="simple" hreflang="simple">Simple English</a></li><li class="interlanguage-link interwiki-ar"><a href="//ar.wikipedia.org/wiki/" title="Arabic" lang="ar" hreflang="ar">العربية</a></li><li class="interlanguage-link interwiki-id"><a href="//id.wikipedia.org/wiki/" title="Indonesian" lang="id" hreflang="id">Bahasa Indonesia</a></li><li class="interlanguage-link interwiki-ms"><a href="//ms.wikipedia.org/wiki/" title="Malay" lang="ms" hreflang="ms">Bahasa Melayu</a></li><li class="interlanguage-link interwiki-bs"><a href="//bs.wikipedia.org/wiki/" title="Bosnian" lang="bs" hreflang="bs">Bosanski</a></li><li class="interlanguage-link interwiki-bg"><a href="//bg.wikipedia.org/wiki/" title="Bulgarian" lang="bg" hreflang="bg">Български</a></li><li class="interlanguage-link interwiki-ca"><a href="//ca.wikipedia.org/wiki/" title="Catalan" lang="ca" hreflang="ca">Català</a></li><li class="interlanguage-link interwiki-cs"><a href="//cs.wikipedia.org/wiki/" title="Czech" lang="cs" hreflang="cs">Čeština</a></li><li class="interlanguage-link interwiki-da"><a href="//da.wikipedia.org/wiki/" title="Danish" lang="da" hreflang="da">Dansk</a></li><li class="interlanguage-link interwiki-de"><a href="//de.wikipedia.org/wiki/" title="German" lang="de" hreflang="de">Deutsch</a></li><li class="interlanguage-link interwiki-et"><a href="//et.wikipedia.org/wiki/" title="Estonian" lang="et" hreflang="et">Eesti</a></li><li class="interlanguage-link interwiki-el"><a href="//el.wikipedia.org/wiki/" title="Greek" lang="el" hreflang="el">Ελληνικά</a></li><li class="interlanguage-link interwiki-es"><a href="//es.wikipedia.org/wiki/" title="Spanish" lang="es" hreflang="es">Español</a></li><li class="interlanguage-link interwiki-eo"><a href="//eo.wikipedia.org/wiki/" title="Esperanto" lang="eo" hreflang="eo">Esperanto</a></li><li class="interlanguage-link interwiki-eu"><a href="//eu.wikipedia.org/wiki/" title="Basque" lang="eu" hreflang="eu">Euskara</a></li><li class="interlanguage-link interwiki-fa"><a href="//fa.wikipedia.org/wiki/" title="Persian" lang="fa" hreflang="fa">فارسی</a></li><li class="interlanguage-link interwiki-fr"><a href="//fr.wikipedia.org/wiki/" title="French" lang="fr" hreflang="fr">Français</a></li><li class="interlanguage-link interwiki-gl"><a href="//gl.wikipedia.org/wiki/" title="Galician" lang="gl" hreflang="gl">Galego</a></li><li class="interlanguage-link interwiki-ko"><a href="//ko.wikipedia.org/wiki/" title="Korean" lang="ko" hreflang="ko">한국어</a></li><li class="interlanguage-link interwiki-he"><a href="//he.wikipedia.org/wiki/" title="Hebrew" lang="he" hreflang="he">עברית</a></li><li class="interlanguage-link interwiki-hr"><a href="//hr.wikipedia.org/wiki/" title="Croatian" lang="hr" hreflang="hr">Hrvatski</a></li><li class="interlanguage-link interwiki-it"><a href="//it.wikipedia.org/wiki/" title="Italian" lang="it" hreflang="it">Italiano</a></li><li class="interlanguage-link interwiki-ka"><a href="//ka.wikipedia.org/wiki/" title="Georgian" lang="ka" hreflang="ka">ქართული</a></li><li class="interlanguage-link interwiki-lv"><a href="//lv.wikipedia.org/wiki/" title="Latvian" lang="lv" hreflang="lv">Latviešu</a></li><li class="interlanguage-link interwiki-lt"><a href="//lt.wikipedia.org/wiki/" title="Lithuanian" lang="lt" hreflang="lt">Lietuvių</a></li><li class="interlanguage-link interwiki-hu"><a href="//hu.wikipedia.org/wiki/" title="Hungarian" lang="hu" hreflang="hu">Magyar</a></li><li class="interlanguage-link interwiki-nl"><a href="//nl.wikipedia.org/wiki/" title="Dutch" lang="nl" hreflang="nl">Nederlands</a></li><li class="interlanguage-link interwiki-ja"><a href="//ja.wikipedia.org/wiki/" title="Japanese" lang="ja" hreflang="ja">日本語</a></li><li class="interlanguage-link interwiki-no"><a href="//no.wikipedia.org/wiki/" title="Norwegian" lang="no" hreflang="no">Norsk bokmål</a></li><li class="interlanguage-link interwiki-nn"><a href="//nn.wikipedia.org/wiki/" title="Norwegian Nynorsk" lang="nn" hreflang="nn">Norsk nynorsk</a></li><li class="interlanguage-link interwiki-pl"><a href="//pl.wikipedia.org/wiki/" title="Polish" lang="pl" hreflang="pl">Polski</a></li><li class="interlanguage-link interwiki-pt"><a href="//pt.wikipedia.org/wiki/" title="Portuguese" lang="pt" hreflang="pt">Português</a></li><li class="interlanguage-link interwiki-ro"><a href="//ro.wikipedia.org/wiki/" title="Romanian" lang="ro" hreflang="ro">Română</a></li><li class="interlanguage-link interwiki-ru"><a href="//ru.wikipedia.org/wiki/" title="Russian" lang="ru" hreflang="ru">Русский</a></li><li class="interlanguage-link interwiki-sk"><a href="//sk.wikipedia.org/wiki/" title="Slovak" lang="sk" hreflang="sk">Slovenčina</a></li><li class="interlanguage-link interwiki-sl"><a href="//sl.wikipedia.org/wiki/" title="Slovenian" lang="sl" hreflang="sl">Slovenščina</a></li><li class="interlanguage-link interwiki-sr"><a href="//sr.wikipedia.org/wiki/" title="Serbian" lang="sr" hreflang="sr">Српски / srpski</a></li><li class="interlanguage-link interwiki-sh"><a href="//sh.wikipedia.org/wiki/" title="Serbo-Croatian" lang="sh" hreflang="sh">Srpskohrvatski / српскохрватски</a></li><li class="interlanguage-link interwiki-fi"><a href="//fi.wikipedia.org/wiki/" title="Finnish" lang="fi" hreflang="fi">Suomi</a></li><li class="interlanguage-link interwiki-sv"><a href="//sv.wikipedia.org/wiki/" title="Swedish" lang="sv" hreflang="sv">Svenska</a></li><li class="interlanguage-link interwiki-th"><a href="//th.wikipedia.org/wiki/" title="Thai" lang="th" hreflang="th">ไทย</a></li><li class="interlanguage-link interwiki-vi"><a href="//vi.wikipedia.org/wiki/" title="Vietnamese" lang="vi" hreflang="vi">Tiếng Việt</a></li><li class="interlanguage-link interwiki-tr"><a href="//tr.wikipedia.org/wiki/" title="Turkish" lang="tr" hreflang="tr">Türkçe</a></li><li class="interlanguage-link interwiki-uk"><a href="//uk.wikipedia.org/wiki/" title="Ukrainian" lang="uk" hreflang="uk">Українська</a></li><li class="interlanguage-link interwiki-zh"><a href="//zh.wikipedia.org/wiki/" title="Chinese" lang="zh" hreflang="zh">中文</a></li><li class="uls-p-lang-dummy"><a href="#"></a></li> </ul>
- </div>
- </div>
- </div>
- </div>
- <div id="footer" role="contentinfo">
- <ul id="footer-info">
- <li id="footer-info-lastmod"> This page was last modified on 26 December 2015, at 10:03.</li>
- <li id="footer-info-copyright">Text is available under the <a rel="license" href="//en.wikipedia.org/wiki/Wikipedia:Text_of_Creative_Commons_Attribution-ShareAlike_3.0_Unported_License">Creative Commons Attribution-ShareAlike License</a><a rel="license" href="//creativecommons.org/licenses/by-sa/3.0/" style="display:none;"></a>;
-additional terms may apply. By using this site, you agree to the <a href="//wikimediafoundation.org/wiki/Terms_of_Use">Terms of Use</a> and <a href="//wikimediafoundation.org/wiki/Privacy_policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a href="//www.wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li>
- </ul>
- <ul id="footer-places">
- <li id="footer-places-privacy"><a href="//wikimediafoundation.org/wiki/Privacy_policy" title="wmf:Privacy policy">Privacy policy</a></li>
- <li id="footer-places-about"><a href="/wiki/Wikipedia:About" title="Wikipedia:About">About Wikipedia</a></li>
- <li id="footer-places-disclaimer"><a href="/wiki/Wikipedia:General_disclaimer" title="Wikipedia:General disclaimer">Disclaimers</a></li>
- <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li>
- <li id="footer-places-developers"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/How_to_contribute">Developers</a></li>
- <li id="footer-places-cookiestatement"><a href="//wikimediafoundation.org/wiki/Cookie_statement">Cookie statement</a></li>
- <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Main_Page&mainpage=&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li>
- </ul>
- <ul id="footer-icons" class="noprint">
- <li id="footer-copyrightico">
- <a href="https://wikimediafoundation.org/"><img src="/static/images/wikimedia-button.png" srcset="/static/images/wikimedia-button-1.5x.png 1.5x, /static/images/wikimedia-button-2x.png 2x" width="88" height="31" alt="Wikimedia Foundation"/></a> </li>
- <li id="footer-poweredbyico">
- <a href="//www.mediawiki.org/"><img src="/w/resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/w/resources/assets/poweredby_mediawiki_132x47.png 1.5x, /w/resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31"/></a> </li>
- </ul>
- <div style="clear:both"></div>
- </div>
- <script>(window.RLQ=window.RLQ||[]).push(function(){mw.loader.state({"ext.globalCssJs.site":"ready","ext.globalCssJs.user":"ready","user":"ready","user.groups":"ready"});mw.loader.load(["mediawiki.action.view.postEdit","site","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.searchSuggest","ext.eventLogging.subscriber","ext.gadget.teahouse","ext.gadget.ReferenceTooltips","ext.gadget.DRN-wizard","ext.gadget.charinsert","ext.gadget.refToolbar","ext.gadget.switcher","ext.gadget.featured-articles-links","mmv.bootstrap.autostart","ext.visualEditor.targetLoader","ext.wikimediaEvents","ext.navigationTiming","schema.UniversalLanguageSelector","ext.uls.eventlogger","ext.uls.interlanguage"]);});</script><script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":185,"wgHostname":"mw1023"});});</script>
- </body>
-</html>
diff --git a/targets.yaml b/targets.yaml
deleted file mode 100644
index 78212c7..0000000
--- a/targets.yaml
+++ /dev/null
@@ -1 +0,0 @@
-debian: "debian:buster"
diff --git a/test/.eslintrc.json b/test/.eslintrc.json
deleted file mode 100644
index bed3a16..0000000
--- a/test/.eslintrc.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "root": true,
- "extends": [
- "wikimedia/server"
- ],
- "rules": {
- "camelcase": "off",
- "no-use-before-define": "off",
- "no-shadow": "off",
- "jsdoc/no-undefined-types": "off",
- "no-underscore-dangle": "off"
- },
- "overrides": [
- {
- "files": "**/*.json",
- "extends": "wikimedia/json"
- }
- ]
-}
diff --git a/test/features/app/app.js b/test/features/app/app.js
deleted file mode 100644
index 56d624b..0000000
--- a/test/features/app/app.js
+++ /dev/null
@@ -1,81 +0,0 @@
-'use strict';
-
-const preq = require( 'preq' );
-const assert = require( '../../utils/assert.js' );
-const Server = require( '../../utils/server.js' );
-
-describe( 'express app', function () { // eslint-disable-line no-undef
-
- this.timeout( 20000 );
-
- const server = new Server();
-
- before( () => server.start() ); // eslint-disable-line no-undef
-
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- it( 'should get robots.txt', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${server.config.uri}robots.txt`
- } ).then( ( res ) => {
- assert.deepEqual( res.status, 200 );
- assert.deepEqual( res.body, 'User-agent: *\nDisallow: /\n' );
- } );
- } );
-
- it( 'should set CORS headers', () => { // eslint-disable-line no-undef
- if ( server.config.service.conf.cors === false ) {
- return true;
- }
- return preq.get( {
- uri: `${server.config.uri}robots.txt`
- } ).then( ( res ) => {
- assert.deepEqual( res.status, 200 );
- assert.deepEqual( res.headers[ 'access-control-allow-origin' ], '*' );
- assert.deepEqual( !!res.headers[ 'access-control-allow-headers' ], true );
- assert.deepEqual( !!res.headers[ 'access-control-expose-headers' ], true );
- } );
- } );
-
- it( 'should set CSP headers', () => { // eslint-disable-line no-undef
- if ( server.config.service.conf.csp === false ) {
- return true;
- }
- return preq.get( {
- uri: `${server.config.uri}robots.txt`
- } ).then( ( res ) => {
- assert.deepEqual( res.status, 200 );
- assert.deepEqual( res.headers[ 'x-xss-protection' ], '1; mode=block' );
- assert.deepEqual( res.headers[ 'x-content-type-options' ], 'nosniff' );
- assert.deepEqual( res.headers[ 'x-frame-options' ], 'SAMEORIGIN' );
- assert.deepEqual( res.headers[ 'content-security-policy' ], 'default-src \'self\'; object-src \'none\'; media-src \'none\'; img-src \'none\'; style-src \'none\'; base-uri \'self\'; frame-ancestors \'self\'' );
- } );
- } );
-
- it( 'should get static content gzipped', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${server.config.uri}static/index.html`,
- headers: {
- 'accept-encoding': 'gzip, deflate'
- }
- } ).then( ( res ) => {
- assert.deepEqual( res.status, 200 );
- // if there is no content-length, the reponse was gzipped
- assert.deepEqual( res.headers[ 'content-length' ], undefined,
- 'Did not expect the content-length header!' );
- } );
- } );
-
- it( 'should get static content uncompressed', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${server.config.uri}static/index.html`,
- headers: {
- 'accept-encoding': ''
- }
- } ).then( ( res ) => {
- const contentEncoding = res.headers[ 'content-encoding' ];
- assert.deepEqual( res.status, 200 );
- assert.deepEqual( contentEncoding, undefined, 'Did not expect gzipped contents!' );
- } );
- } );
-} );
diff --git a/test/features/app/spec.js b/test/features/app/spec.js
deleted file mode 100644
index e1e747b..0000000
--- a/test/features/app/spec.js
+++ /dev/null
@@ -1,318 +0,0 @@
-'use strict';
-
-const parallel = require( 'mocha.parallel' );
-const preq = require( 'preq' );
-const assert = require( '../../utils/assert.js' );
-const Server = require( '../../utils/server.js' );
-const URI = require( 'swagger-router' ).URI;
-const OpenAPISchemaValidator = require( 'openapi-schema-validator' ).default;
-const validator = new OpenAPISchemaValidator( { version: 3 } );
-
-let spec = null;
-let baseUrl = null;
-const server = new Server();
-
-function validateExamples( pathStr, defParams, mSpec ) {
-
- const uri = new URI( pathStr, {}, true );
-
- if ( !mSpec ) {
- try {
- uri.expand( defParams );
- return true;
- } catch ( e ) {
- throw new Error( `Missing parameter for route ${pathStr} : ${e.message}` );
- }
- }
-
- if ( !Array.isArray( mSpec ) ) {
- throw new Error( `Route ${pathStr} : x-amples must be an array!` );
- }
-
- mSpec.forEach( ( ex, idx ) => {
- if ( !ex.title ) {
- throw new Error( `Route ${pathStr}, example ${idx}: title missing!` );
- }
- ex.request = ex.request || {};
- try {
- uri.expand( Object.assign( {}, defParams, ex.request.params || {} ) );
- } catch ( e ) {
- throw new Error(
- `Route ${pathStr}, example ${idx} (${ex.title}): missing parameter: ${e.message}`
- );
- }
- } );
-
- return true;
-
-}
-
-function constructTestCase( title, path, method, request, response ) {
- return {
- title,
- request: {
- uri: ( baseUrl || server.config.uri ) + ( path[ 0 ] === '/' ? path.slice( 1 ) : path ),
- method,
- headers: request.headers || {},
- query: request.query,
- body: request.body,
- followRedirect: false
- },
- response: {
- status: response.status || 200,
- headers: response.headers || {},
- body: response.body
- }
- };
-
-}
-
-function constructTests( spec ) {
- const ret = [];
- const paths = spec.paths;
- const defParams = spec[ 'x-default-params' ] || {};
-
- Object.keys( paths ).forEach( ( pathStr ) => {
- Object.keys( paths[ pathStr ] ).forEach( ( method ) => {
- const p = paths[ pathStr ][ method ];
- if ( {}.hasOwnProperty.call( p, 'x-monitor' ) && !p[ 'x-monitor' ] ) {
- return;
- }
- const uri = new URI( pathStr, {}, true );
- if ( !p[ 'x-amples' ] ) {
- ret.push( constructTestCase(
- pathStr,
- uri.toString( { params: defParams } ),
- method,
- {},
- {}
- ) );
- return;
- }
- p[ 'x-amples' ].forEach( ( ex ) => {
- ex.request = ex.request || {};
- ret.push( constructTestCase(
- ex.title,
- uri.toString( {
- params: Object.assign( {},
- defParams,
- ex.request.params || {} )
- } ),
- method,
- ex.request,
- ex.response || {}
- ) );
- } );
- } );
- } );
-
- return ret;
-}
-
-function cmp( result, expected, errMsg ) {
-
- if ( expected === null || expected === undefined ) {
- // nothing to expect, so we can return
- return true;
- }
- if ( result === null || result === undefined ) {
- result = '';
- }
-
- if ( expected.constructor === Object ) {
- Object.keys( expected ).forEach( ( key ) => {
- const val = expected[ key ];
- assert.deepEqual( {}.hasOwnProperty.call( result, key ), true,
- `Body field ${key} not found in response!` );
- cmp( result[ key ], val, `${key} body field mismatch!` );
- } );
- return true;
- } else if ( expected.constructor === Array ) {
- if ( result.constructor !== Array ) {
- assert.deepEqual( result, expected, errMsg );
- return true;
- }
- // only one item in expected - compare them all
- if ( expected.length === 1 && result.length > 1 ) {
- result.forEach( ( item ) => {
- cmp( item, expected[ 0 ], errMsg );
- } );
- return true;
- }
- // more than one item expected, check them one by one
- if ( expected.length !== result.length ) {
- assert.deepEqual( result, expected, errMsg );
- return true;
- }
- expected.forEach( ( item, idx ) => {
- cmp( result[ idx ], item, errMsg );
- } );
- return true;
- }
-
- if ( expected.length > 1 && expected[ 0 ] === '/' && expected[ expected.length - 1 ] === '/' ) {
- if ( new RegExp( expected.slice( 1, -1 ) ).test( result ) ) {
- return true;
- }
- } else if ( expected.length === 0 && result.length === 0 ) {
- return true;
- } else if ( result === expected || result.startsWith( expected ) ) {
- return true;
- }
-
- assert.deepEqual( result, expected, errMsg );
- return true;
-
-}
-
-function validateArray( val, resVal, key ) {
- assert.deepEqual( Array.isArray( resVal ), true, `Body field ${key} is not an array!` );
- let arrVal;
- if ( val.length === 1 ) {
- // special case: we have specified only one item in the expected body,
- // but what we really want is to check all of the returned items so
- // fill the expected array with as many items as the returned one
- if ( resVal.length < 1 ) {
- throw new assert.AssertionError( {
- message: `Expected more then one element in the field: ${key}`
- } );
- }
- arrVal = [];
- while ( arrVal.length < resVal.length ) {
- arrVal.push( val[ 0 ] );
- }
- } else {
- arrVal = val;
- }
- assert.deepEqual( arrVal.length, resVal.length,
- `Different size of array for field ${key}, expected ${arrVal.length
- } actual ${resVal.length}` );
- arrVal.forEach( ( item, index ) => {
- validateBody( resVal[ index ], item );
- } );
-}
-
-function validateBody( resBody, expBody ) {
- if (!expBody) { return true; } // eslint-disable-line
- if (!resBody) { return false; } // eslint-disable-line
-
- if ( Buffer.isBuffer( resBody ) ) {
- resBody = resBody.toString();
- }
- if ( expBody.constructor !== resBody.constructor ) {
- if ( expBody.constructor === String ) {
- resBody = JSON.stringify( resBody );
- } else {
- resBody = JSON.parse( resBody );
- }
- }
- if ( expBody.constructor === Object ) {
- Object.keys( expBody ).forEach( ( key ) => {
- const val = expBody[ key ];
- // eslint-disable-next-line
- assert.deepEqual(resBody.hasOwnProperty(key), true, `Body field ${key} not found in response!`);
- if ( val.constructor === Object ) {
- validateBody( resBody[ key ], val );
- } else if ( val.constructor === Array ) {
- validateArray( val, resBody[ key ], key );
- } else {
- cmp( resBody[ key ], val, `${key} body field mismatch!` );
- }
- } );
- } else if ( Array.isArray( expBody ) ) {
- validateArray( expBody, resBody, 'body' );
- } else {
- cmp( resBody, expBody, 'Body mismatch!' );
- }
- return true;
-}
-
-function validateTestResponse( testCase, res ) {
- const expRes = testCase.response;
-
- assert.deepEqual( res.status, expRes.status );
-
- if (expRes.headers && !res.headers) {return false; } // eslint-disable-line
-
- Object.keys( expRes.headers ).forEach( ( key ) => {
- const val = expRes.headers[ key ];
- // eslint-disable-next-line
- assert.deepEqual(res.headers.hasOwnProperty(key), true, `Header ${key} not found in response!`);
- cmp( res.headers[ key ], val, `${key} header mismatch!` );
- } );
-
- validateBody( res.body || '', expRes.body );
-}
-
-describe( 'Swagger spec', function () { // eslint-disable-line no-undef
-
- this.timeout( 20000 );
-
- before( () => server.start() ); // eslint-disable-line no-undef
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- it( 'get the spec', () => { // eslint-disable-line no-undef
- baseUrl = server.config.uri;
- return preq.get( `${baseUrl}?spec` )
- .then( ( res ) => {
- assert.status( 200 );
- assert.contentType( res, 'application/json' );
- assert.notDeepEqual( res.body, undefined, 'No body received!' );
- // save a copy
- spec = res.body;
- return spec;
- } )
- .then( ( spec ) => {
- const routeTests = () => {
- before( () => server.start() ); // eslint-disable-line no-undef
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- constructTests( spec ).forEach( ( testCase ) => {
- it( // eslint-disable-line no-undef
- testCase.title,
- function ( done ) { // eslint-disable-line no-unused-vars
- return preq( testCase.request )
- .then( ( res ) => {
- assert.status( res, testCase.response.status );
- validateTestResponse( testCase, res );
- }, ( err ) => {
- assert.status( err, testCase.response.status );
- validateTestResponse( testCase, err );
- } );
- }
- );
- } );
- };
- parallel( 'Monitoring routes', routeTests );
- } );
- } );
-
- it( 'should expose valid OpenAPI spec', () => { // eslint-disable-line no-undef
- return preq.get( { uri: `${server.config.uri}?spec` } )
- .then( ( res ) => {
- assert.deepEqual( { errors: [] }, validator.validate( res.body ), 'Spec must have no validation errors' );
- } );
- } );
-
- it( 'spec validation', () => { // eslint-disable-line no-undef
- // check the high-level attributes
- [ 'info', 'openapi', 'paths' ].forEach( ( prop ) => {
- assert.deepEqual( !!spec[ prop ], true, `No ${prop} field present!` );
- } );
- // no paths - no love
- assert.deepEqual( !!Object.keys( spec.paths ), true, 'No paths given in the spec!' );
- // now check each path
- Object.keys( spec.paths ).forEach( ( pathStr ) => {
- assert.deepEqual( !!pathStr, true, 'A path cannot have a length of zero!' );
- const path = spec.paths[ pathStr ];
- assert.deepEqual( !!Object.keys( path ), true, `No methods defined for path: ${pathStr}` );
- Object.keys( path ).forEach( ( method ) => {
- const mSpec = path[ method ];
- if ( {}.hasOwnProperty.call( mSpec, 'x-monitor' ) && !mSpec[ 'x-monitor' ] ) {
- return;
- }
- validateExamples( pathStr, spec[ 'x-default-params' ] || {}, mSpec[ 'x-amples' ] );
- } );
- } );
- } );
-} );
diff --git a/test/features/ex/errors.js b/test/features/ex/errors.js
deleted file mode 100644
index 3fe5589..0000000
--- a/test/features/ex/errors.js
+++ /dev/null
@@ -1,91 +0,0 @@
-'use strict';
-
-const preq = require( 'preq' );
-const assert = require( '../../utils/assert.js' );
-const Server = require( '../../utils/server.js' );
-
-describe( 'errors', function () { // eslint-disable-line no-undef
- this.timeout( 20000 );
-
- let uri = null;
- const server = new Server();
-
- before( () => { // eslint-disable-line no-undef
- return server.start()
- .then( () => {
- uri = `${server.config.uri}ex/err/`;
- } );
- } );
-
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- it( 'array creation error', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${uri}array`
- } ).then( ( res ) => {
- // if we are here, no error was thrown, not good
- throw new Error( `Expected an error to be thrown, got status: ${res.status}` );
- }, ( err ) => {
- // inspect the status
- assert.deepEqual( err.status, 500 );
- // check the error title
- assert.deepEqual( err.body.title, 'RangeError' );
- } );
- } );
-
- it( 'file read error', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${uri}file`
- } ).then( ( res ) => {
- // if we are here, no error was thrown, not good
- throw new Error( `Expected an error to be thrown, got status: ${res.status}` );
- }, ( err ) => {
- // inspect the status
- assert.deepEqual( err.status, 500 );
- // check the error title
- assert.deepEqual( err.body.title, 'Error' );
- } );
- } );
-
- it( 'constraint check error', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${uri}manual/error`
- } ).then( ( res ) => {
- // if we are here, no error was thrown, not good
- throw new Error( `Expected an error to be thrown, got status: ${res.status}` );
- }, ( err ) => {
- // inspect the status
- assert.deepEqual( err.status, 500 );
- // check the error title
- assert.deepEqual( err.body.title, 'Error' );
- } );
- } );
-
- it( 'access denied error', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${uri}manual/deny`
- } ).then( ( res ) => {
- // if we are here, no error was thrown, not good
- throw new Error( `Expected an error to be thrown, got status: ${res.status}` );
- }, ( err ) => {
- // inspect the status
- assert.deepEqual( err.status, 403 );
- // check the error title
- assert.deepEqual( err.body.type, 'access_denied' );
- } );
- } );
-
- it( 'authorisation error', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${uri}manual/auth`
- } ).then( ( res ) => {
- // if we are here, no error was thrown, not good
- throw new Error( `Expected an error to be thrown, got status: ${res.status}` );
- }, ( err ) => {
- // inspect the status
- assert.deepEqual( err.status, 401 );
- // check the error title
- assert.deepEqual( err.body.type, 'unauthorized' );
- } );
- } );
-} );
diff --git a/test/features/info/info.js b/test/features/info/info.js
deleted file mode 100644
index c819ad6..0000000
--- a/test/features/info/info.js
+++ /dev/null
@@ -1,83 +0,0 @@
-'use strict';
-
-const preq = require( 'preq' );
-const assert = require( '../../utils/assert.js' );
-const Server = require( '../../utils/server.js' );
-
-describe( 'service information', function () { // eslint-disable-line no-undef
-
- this.timeout( 20000 );
-
- let infoUri = null;
-
- const server = new Server();
-
- before( () => { // eslint-disable-line no-undef
- return server.start()
- .then( () => {
- infoUri = `${server.config.uri}_info/`;
- } );
- } );
-
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- // common function used for generating requests
- // and checking their return values
- function checkRet( fieldName ) {
- return preq.get( {
- uri: infoUri + fieldName
- } ).then( ( res ) => {
- // check the returned Content-Type header
- assert.contentType( res, 'application/json' );
- // the status as well
- assert.status( res, 200 );
- // finally, check the body has the specified field
- assert.notDeepEqual( res.body, undefined, 'No body returned!' );
- assert.notDeepEqual( res.body[ fieldName ], undefined, `No ${fieldName} field returned!` );
- } );
- }
-
- it( 'should get the service name', () => { // eslint-disable-line no-undef
- return checkRet( 'name' );
- } );
-
- it( 'should get the service version', () => { // eslint-disable-line no-undef
- return checkRet( 'version' );
- } );
-
- it( 'should redirect to the service home page', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${infoUri}home`,
- followRedirect: false
- } ).then( ( res ) => {
- // check the status
- assert.status( res, 301 );
- } );
- } );
-
- it( 'should get the service info', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: infoUri
- } ).then( ( res ) => {
- // check the status
- assert.status( res, 200 );
- // check the returned Content-Type header
- assert.contentType( res, 'application/json' );
- // inspect the body
- assert.notDeepEqual( res.body, undefined, 'No body returned!' );
- assert.notDeepEqual( res.body.name, undefined, 'No name field returned!' );
- assert.notDeepEqual( res.body.version, undefined, 'No version field returned!' );
- assert.notDeepEqual( res.body.description, undefined, 'No description field returned!' );
- assert.notDeepEqual( res.body.home, undefined, 'No home field returned!' );
- } );
- } );
-
- it( 'should fail to get the service info for invalid endpoint', () => { // eslint-disable-line no-undef
- return assert.fails(
- preq.get( { uri: `${infoUri}zzz` } ),
- ( res ) => {
- assert.deepEqual( res.status, 404 );
- }
- );
- } );
-} );
diff --git a/test/features/v1/evaluateTest.js b/test/features/v1/evaluateTest.js
deleted file mode 100644
index b3e4d4b..0000000
--- a/test/features/v1/evaluateTest.js
+++ /dev/null
@@ -1,197 +0,0 @@
-'use strict';
-
-const fetch = require( '../../../lib/fetch.js' );
-const Server = require( '../../utils/server.js' );
-const { evaluatorIntegrationTest } = require( '../../utils/integrationTest.js' );
-const { readJSON } = require( '../../../src/fileUtils.js' );
-
-describe( 'evaluate-integration', function () { // eslint-disable-line no-undef
-
- this.timeout( 20000 );
-
- let uri = null;
- const server = new Server();
-
- before( () => { // eslint-disable-line no-undef
- return server.start()
- .then( () => {
- uri = `${server.config.uri}wikifunctions.org/v1/evaluate/`;
- } );
- } );
-
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'degenerate function call',
- readJSON( './test_data/degenerate_Z8.json' ),
- // TODO (T292804): Figure out what error this should actually be.
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase= */ '',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python - addition',
- readJSON( './test_data/python3_add_Z7.json' ),
- readJSON( './test_data/add_expected.json' )
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python - addition (with generics)',
- readJSON( './test_data/python3_add_with_generics_Z7.json' ),
- readJSON( './test_data/add_expected.json' )
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python - error: no Z8',
- readJSON( './test_data/python3_no_Z8.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python - error: no Z14',
- readJSON( './test_data/python3_no_Z14.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
-
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - addition',
- readJSON( './test_data/javascript_add_Z7.json' ),
- readJSON( './test_data/add_expected.json' )
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - addition (with generics)',
- readJSON( './test_data/javascript_add_with_generics_Z7.json' ),
- readJSON( './test_data/add_expected.json' )
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - error: no Z8',
- readJSON( './test_data/javascript_no_Z8.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - error: no Z14',
- readJSON( './test_data/javascript_no_Z14.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - throw',
- readJSON( './test_data/javascript_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Hello, this is a good day to die'
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'no implementation - throw',
- readJSON( './test_data/no_implementation_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python unsupported version - throw',
- readJSON( './test_data/python_unsupported_version_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'No executor found for programming language'
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'unsupported language Java - throw',
- readJSON( './test_data/unsupported_language_java_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'No executor found for programming language'
- );
-
-} );
diff --git a/test/features/v1/javascript-all-test.js b/test/features/v1/javascript-all-test.js
deleted file mode 100644
index aa7503f..0000000
--- a/test/features/v1/javascript-all-test.js
+++ /dev/null
@@ -1,157 +0,0 @@
-'use strict';
-
-const fetch = require( '../../../lib/fetch.js' );
-const Server = require( '../../utils/server.js' );
-const { evaluatorIntegrationTest } = require( '../../utils/integrationTest.js' );
-const { readJSON } = require( '../../../src/fileUtils.js' );
-
-describe( 'javascript-v1-integration', function () { // eslint-disable-line no-undef
-
- this.timeout( 20000 );
-
- let uri = null;
- const server = new Server();
-
- before( () => { // eslint-disable-line no-undef
- return server.start()
- .then( () => {
- uri = `${server.config.uri}wikifunctions.org/v1/evaluate/`;
- } );
- } );
-
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'degenerate function call',
- readJSON( './test_data/degenerate_Z8.json' ),
- // TODO (T292804): Figure out what error this should actually be.
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase= */ '',
- /* enableForV003= */ false
- );
-
- // TODO (T330294): Enable this test and ensure an error is thrown.
- // evaluatorIntegrationTest(
- // async function ( requestBody ) {
- // return await fetch( uri, requestBody );
- // },
- // function ( testName, callBack ) {
- // it( testName, callBack ); // eslint-disable-line no-undef
- // },
- // 'python - addition',
- // readJSON( './test_data/python3_add_Z7.json' ),
- // /* expectedOutput= */ null
- // );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - addition',
- readJSON( './test_data/javascript_add_Z7.json' ),
- readJSON( './test_data/add_expected.json' )
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - addition (with generics)',
- readJSON( './test_data/javascript_add_with_generics_Z7.json' ),
- readJSON( './test_data/add_expected.json' )
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - error: no Z8',
- readJSON( './test_data/javascript_no_Z8.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - error: no Z14',
- readJSON( './test_data/javascript_no_Z14.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'javascript - throw',
- readJSON( './test_data/javascript_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Hello, this is a good day to die'
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'no implementation - throw',
- readJSON( './test_data/no_implementation_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python unsupported version - throw',
- readJSON( './test_data/python_unsupported_version_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'No executor found for programming language'
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'unsupported language Java - throw',
- readJSON( './test_data/unsupported_language_java_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'No executor found for programming language'
- );
-
-} );
diff --git a/test/features/v1/page.js b/test/features/v1/page.js
deleted file mode 100644
index b5006de..0000000
--- a/test/features/v1/page.js
+++ /dev/null
@@ -1,72 +0,0 @@
-'use strict';
-
-const preq = require( 'preq' );
-const assert = require( '../../utils/assert.js' );
-const Server = require( '../../utils/server.js' );
-
-describe( 'page gets', function () { // eslint-disable-line no-undef
-
- this.timeout( 20000 );
-
- let uri = null;
- const server = new Server();
-
- before( () => { // eslint-disable-line no-undef
- return server.start()
- .then( () => {
- uri = `${server.config.uri}en.wikipedia.org/v1/page/Table_(database)/`;
- } );
- } );
-
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- it( 'should get the whole page body', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri
- } ).then( ( res ) => {
- // check the status
- assert.status( res, 200 );
- // check the returned Content-Type header
- assert.contentType( res, 'text/html' );
- // inspect the body
- assert.notDeepEqual( res.body, undefined, 'No body returned!' );
- // this should be the right page
- if ( !/Table_\(database\)#cite/.test( res.body ) ) {
- throw new Error( 'Not the title I was expecting!' );
- }
- } );
- } );
-
- it( 'should get only the leading section', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${uri}lead`
- } ).then( ( res ) => {
- // check the status
- assert.status( res, 200 );
- // check the returned Content-Type header
- assert.contentType( res, 'text/html' );
- // inspect the body
- assert.notDeepEqual( res.body, undefined, 'No body returned!' );
- // this should be the right page
- if ( !/Table/.test( res.body ) ) {
- throw new Error( 'Not the page I was expecting!' );
- }
- // .. and should start with <div id="lead_section">
- if ( !/^<div id="lead_section">/.test( res.body ) ) {
- throw new Error( 'This is not a leading section!' );
- }
- } );
- } );
-
- it( 'should throw a 404 for a non-existent page', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${server.config.uri}en.wikipedia.org/v1/page/Foobar_and_friends`
- } ).then( ( res ) => {
- // if we are here, no error was thrown, not good
- throw new Error( 'Expected an error to be thrown, got status: ', res.status );
- }, ( err ) => {
- // inspect the status
- assert.deepEqual( err.status, 404 );
- } );
- } );
-} );
diff --git a/test/features/v1/python3-all-test.js b/test/features/v1/python3-all-test.js
deleted file mode 100644
index 9ed94ab..0000000
--- a/test/features/v1/python3-all-test.js
+++ /dev/null
@@ -1,144 +0,0 @@
-'use strict';
-
-const fetch = require( '../../../lib/fetch.js' );
-const Server = require( '../../utils/server.js' );
-const { evaluatorIntegrationTest } = require( '../../utils/integrationTest.js' );
-const { readJSON } = require( '../../../src/fileUtils.js' );
-
-describe( 'python3-v1-integration', function () { // eslint-disable-line no-undef
-
- this.timeout( 20000 );
-
- let uri = null;
- const server = new Server();
-
- before( () => { // eslint-disable-line no-undef
- return server.start()
- .then( () => {
- uri = `${server.config.uri}wikifunctions.org/v1/evaluate/`;
- } );
- } );
-
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'degenerate function call',
- readJSON( './test_data/degenerate_Z8.json' ),
- // TODO (T292804): Figure out what error this should actually be.
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase= */ '',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python - addition',
- readJSON( './test_data/python3_add_Z7.json' ),
- readJSON( './test_data/add_expected.json' )
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python - addition (with generics)',
- readJSON( './test_data/python3_add_with_generics_Z7.json' ),
- readJSON( './test_data/add_expected.json' )
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python - error: no Z8',
- readJSON( './test_data/python3_no_Z8.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python - error: no Z14',
- readJSON( './test_data/python3_no_Z14.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- // TODO (T330294): Enable this test and ensure an error is thrown.
- // evaluatorIntegrationTest(
- // async function ( requestBody ) {
- // return await fetch( uri, requestBody );
- // },
- // function ( testName, callBack ) {
- // it( testName, callBack ); // eslint-disable-line no-undef
- // },
- // 'javascript - addition',
- // readJSON( './test_data/javascript_add_Z7.json' ),
- // /* expectedOutput= */ null
- // );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'no implementation - throw',
- readJSON( './test_data/no_implementation_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'Unable to find programming language',
- /* enableForV003= */ false
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'python unsupported version - throw',
- readJSON( './test_data/python_unsupported_version_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'No executor found for programming language'
- );
-
- evaluatorIntegrationTest(
- async function ( requestBody ) {
- return await fetch( uri, requestBody );
- },
- function ( testName, callBack ) {
- it( testName, callBack ); // eslint-disable-line no-undef
- },
- 'unsupported language Java - throw',
- readJSON( './test_data/unsupported_language_java_throw.json' ),
- /* expectedOutput= */ null,
- /* expectedErrorKeyPhrase */ 'No executor found for programming language'
- );
-
-} );
diff --git a/test/features/v1/siteinfo.js b/test/features/v1/siteinfo.js
deleted file mode 100644
index 32975a6..0000000
--- a/test/features/v1/siteinfo.js
+++ /dev/null
@@ -1,74 +0,0 @@
-'use strict';
-
-const preq = require( 'preq' );
-const assert = require( '../../utils/assert.js' );
-const Server = require( '../../utils/server.js' );
-
-describe( 'wiki site info', function () { // eslint-disable-line no-undef
-
- this.timeout( 20000 );
-
- let uri = null;
- const server = new Server();
-
- before( () => { // eslint-disable-line no-undef
- return server.start()
- .then( () => {
- uri = `${server.config.uri}en.wikipedia.org/v1/siteinfo/`;
- } );
- } );
-
- after( () => server.stop() ); // eslint-disable-line no-undef
-
- it( 'should get all general enwiki site info', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri
- } ).then( ( res ) => {
- // check the status
- assert.status( res, 200 );
- // check the returned Content-Type header
- assert.contentType( res, 'application/json' );
- // inspect the body
- assert.notDeepEqual( res.body, undefined, 'No body returned!' );
- assert.notDeepEqual( res.body.server, undefined, 'No server field returned!' );
- } );
- } );
-
- it( 'should get the mainpage setting of enwiki', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${uri}mainpage`
- } ).then( ( res ) => {
- // check the status
- assert.status( res, 200 );
- // check the returned Content-Type header
- assert.contentType( res, 'application/json' );
- // inspect the body
- assert.notDeepEqual( res.body, undefined, 'No body returned!' );
- assert.deepEqual( res.body.mainpage, 'Main Page', 'enwiki mainpage mismatch!' );
- } );
- } );
-
- it( 'should fail to get a non-existent setting of enwiki', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${uri}dummy_wiki_setting`
- } ).then( ( res ) => {
- // if we are here, no error was thrown, not good
- throw new Error( `Expected an error to be thrown, got status: ${res.status}` );
- }, ( err ) => {
- // inspect the status
- assert.deepEqual( err.status, 404 );
- } );
- } );
-
- it( 'should fail to get info from a non-existent wiki', () => { // eslint-disable-line no-undef
- return preq.get( {
- uri: `${server.config.uri}non.existent.wiki/v1/siteinfo/`
- } ).then( ( res ) => {
- // if we are here, no error was thrown, not good
- throw new Error( `Expected an error to be thrown, got status: ${res.status}` );
- }, ( err ) => {
- // inspect the status
- assert.deepEqual( err.status, 504 );
- } );
- } );
-} );
diff --git a/test/mocha.opts b/test/mocha.opts
deleted file mode 100644
index 5a2be76..0000000
--- a/test/mocha.opts
+++ /dev/null
@@ -1,2 +0,0 @@
---recursive
---no-timeouts
diff --git a/test/utils/assert.js b/test/utils/assert.js
deleted file mode 100644
index 86c54eb..0000000
--- a/test/utils/assert.js
+++ /dev/null
@@ -1,39 +0,0 @@
-'use strict';
-
-const { use } = require( 'chai' );
-
-module.exports = use( function ( _chai, _utils ) { // eslint-disable-line no-unused-vars
- const { assert } = _chai;
-
- assert.status = ( res, expected ) => {
- const msg = `Expected status to be ${expected}, but was ${res.status}`;
- new _chai.Assertion( res.status, msg, assert.status, true ).to.eql( expected );
- };
-
- assert.contentType = ( res, expectedRegexString ) => {
- const actual = res.headers[ 'content-type' ];
- const msg = `Expected content-type to match ${expectedRegexString}, but was ${actual}`;
- new _chai.Assertion(
- actual, msg, assert.contentType, true
- ).to.match( RegExp( expectedRegexString ) );
- };
-
- assert.fails = ( promise, onRejected ) => {
-
- let failed = false;
-
- function trackFailure( e ) {
- failed = true;
- return onRejected( e );
- }
-
- function check() {
- if ( !failed ) {
- throw new Error( 'expected error was not thrown' );
- }
- }
- return promise.catch( trackFailure ).then( check );
-
- };
-
-} ).assert;
diff --git a/test/utils/integrationTest.js b/test/utils/integrationTest.js
deleted file mode 100644
index f1f37dc..0000000
--- a/test/utils/integrationTest.js
+++ /dev/null
@@ -1,71 +0,0 @@
-'use strict';
-
-const assert = require( './assert.js' );
-
-const { isVoid, getError, isZMap } = require( '../../executors/javascript/function-schemata/javascript/src/utils.js' );
-const { convertWrappedZObjectToVersionedBinary } = require( '../../executors/javascript/function-schemata/javascript/src/serialize.js' );
-
-function evaluatorIntegrationTest(
- fetch, testRunner, name, input, expectedOutput = null, expectedErrorKeyPhrase = '',
- enableForV003 = true
-) {
- const wrappedInput = {
- reentrant: false,
- zobject: input
- };
- const wrappedInputV004 = { ...wrappedInput };
- wrappedInputV004.remainingTime = 15;
- const toTest = {};
-
- // Some older test cases aren't applicable to schema versions v0.0.3 and up.
- // This is a good thing, since it means that we've tightened guarantees around
- // the input, but it makes this code messy. We can clean up the irrelevant
- // test cases if/when we deprecate the older schema versions.
- if ( enableForV003 ) {
- toTest[ 'serialized version 0.0.3/4' ] = {
- theInput: convertWrappedZObjectToVersionedBinary( wrappedInputV004, '0.0.4' ),
- contentType: 'application/octet-stream'
- };
- }
- toTest[ 'serialized version 0.0.2' ] = {
- theInput: convertWrappedZObjectToVersionedBinary( wrappedInput, '0.0.2' ),
- contentType: 'application/octet-stream'
- };
- toTest[ 'raw JSON version' ] = {
- theInput: JSON.stringify( wrappedInput ),
- contentType: 'application/json'
- };
- for ( const key of Object.keys( toTest ) ) {
- const theInput = toTest[ key ].theInput;
- const contentType = toTest[ key ].contentType;
- const testName = `${name}: ${key}`;
- testRunner( testName, async function () {
- const fetchedResult = await fetch( {
- method: 'POST',
- body: theInput,
- headers: { 'Content-type': contentType }
- } );
- assert.status( fetchedResult, 200 );
- const jsonRegex = /application\/json/;
- assert.ok( fetchedResult.headers.get( 'Content-type' ).match( jsonRegex ) );
- const Z22 = await fetchedResult.json();
- const Z22K1 = Z22.Z22K1;
- const Z22K2 = Z22.Z22K2;
- if ( expectedOutput !== null ) {
- assert.deepEqual( Z22K1, expectedOutput.Z22K1, name );
- assert.deepEqual( getError( Z22 ), getError( expectedOutput ), name );
- assert.ok( isVoid( Z22K2 ) || isZMap( Z22K2 ) );
- } else {
- const isError = ( isVoid( Z22K1 ) );
- assert.ok( isError );
- // Checks that the error content contains the expected error key phrase.
- const errorMessage = Z22K2.K1.K1.K2.Z5K2.Z6K1;
- assert.ok( errorMessage.includes( expectedErrorKeyPhrase ) );
- }
- } );
- }
-}
-
-module.exports = {
- evaluatorIntegrationTest
-};
diff --git a/test/utils/server.js b/test/utils/server.js
deleted file mode 100644
index 6bcfb03..0000000
--- a/test/utils/server.js
+++ /dev/null
@@ -1,56 +0,0 @@
-'use strict';
-
-const preq = require( 'preq' );
-const TestRunner = require( 'service-runner/test/TestServer' );
-
-class TestServiceTemplateNodeRunner extends TestRunner {
- constructor( configPath = `${__dirname}/../../config.yaml` ) {
- super( configPath );
- this._spec = null;
- }
-
- get config() {
- if ( !this._running ) {
- throw new Error( 'Accessing test service config before starting the service' );
- }
-
- // build the API endpoint URI by supposing the actual service
- // is the last one in the 'services' list in the config file
- const myServiceIdx = this._runner._impl.config.services.length - 1;
- const myService = this._runner._impl.config.services[ myServiceIdx ];
- const uri = `http://localhost:${myService.conf.port}/`;
- if ( !this._spec ) {
- // We only want to load this once.
- preq.get( `${uri}?spec` )
- .then( ( res ) => {
- if ( !res.body ) {
- throw new Error( 'Failed to get spec' );
- }
- // save a copy
- this._spec = res.body;
- } )
- .catch( ( err ) => { // eslint-disable-line no-unused-vars
- // this error will be detected later, so ignore it
- this._spec = { paths: {}, 'x-default-params': {} };
- } )
- .then( () => {
- return {
- uri,
- service: myService,
- conf: this._runner._impl.config,
- spec: this._spec
- };
- } );
- }
-
- return {
- uri,
- service: myService,
- conf: this._runner._impl.config,
- spec: this._spec
- };
-
- }
-}
-
-module.exports = TestServiceTemplateNodeRunner;
diff --git a/test_data/add_expected.json b/test_data/add_expected.json
deleted file mode 100644
index 37ab4a0..0000000
--- a/test_data/add_expected.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": {
- "Z1K1": "Z6",
- "Z6K1": "13"
- },
- "Z22K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- }
-}
diff --git a/test_data/compound_type_expected.json b/test_data/compound_type_expected.json
deleted file mode 100644
index bc1e803..0000000
--- a/test_data/compound_type_expected.json
+++ /dev/null
@@ -1,198 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": {
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z21"
- }
- },
- "K2": {
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z40K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z41"
- }
- },
- "K2": {
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "tRue"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "Z22K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- }
-}
diff --git a/test_data/degenerate_Z8.json b/test_data/degenerate_Z8.json
deleted file mode 100644
index 14410ad..0000000
--- a/test_data/degenerate_Z8.json
+++ /dev/null
@@ -1,196 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z6",
- "Z6K1": "this is not a Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z6",
- "Z6K1": "this is not a Z17"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z6",
- "Z6K1": "this is not a Z17"
- }
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- },
- "Z14K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z100000"
- },
- "Z14K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z16"
- },
- "Z16K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z61"
- },
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "python-3"
- }
- },
- "Z16K2": {
- "Z1K1": "Z6",
- "Z6K1": "def Z1000(Z1000K1, Z1000K2):\n\treturn str(int(Z1000K1) + int(Z1000K2))"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
-}
diff --git a/test_data/javascript_add.json b/test_data/javascript_add.json
deleted file mode 100644
index 5633a28..0000000
--- a/test_data/javascript_add.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "codeString": "function Z1000( Z1000K1, Z1000K2 ) { return (parseInt(Z1000K1) + parseInt(Z1000K2)).toString(); }",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
- }
-}
diff --git a/test_data/javascript_add_Z7.json b/test_data/javascript_add_Z7.json
deleted file mode 100644
index a84ca3a..0000000
--- a/test_data/javascript_add_Z7.json
+++ /dev/null
@@ -1,226 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K2"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- },
- "Z14K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- },
- "Z14K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z16"
- },
- "Z16K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z61"
- },
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "javascript"
- }
- },
- "Z16K2": {
- "Z1K1": "Z6",
- "Z6K1": "function Z1000( Z1000K1, Z1000K2 ) { return (parseInt(Z1000K1) + parseInt(Z1000K2)).toString(); }"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
-}
diff --git a/test_data/javascript_add_with_generics.json b/test_data/javascript_add_with_generics.json
deleted file mode 100644
index 5633a28..0000000
--- a/test_data/javascript_add_with_generics.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "codeString": "function Z1000( Z1000K1, Z1000K2 ) { return (parseInt(Z1000K1) + parseInt(Z1000K2)).toString(); }",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
- }
-}
diff --git a/test_data/javascript_add_with_generics_Z7.json b/test_data/javascript_add_with_generics_Z7.json
deleted file mode 100644
index a84ca3a..0000000
--- a/test_data/javascript_add_with_generics_Z7.json
+++ /dev/null
@@ -1,226 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K2"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- },
- "Z14K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- },
- "Z14K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z16"
- },
- "Z16K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z61"
- },
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "javascript"
- }
- },
- "Z16K2": {
- "Z1K1": "Z6",
- "Z6K1": "function Z1000( Z1000K1, Z1000K2 ) { return (parseInt(Z1000K1) + parseInt(Z1000K2)).toString(); }"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
-}
diff --git a/test_data/javascript_compound_type.json b/test_data/javascript_compound_type.json
deleted file mode 100644
index ae7aa3b..0000000
--- a/test_data/javascript_compound_type.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "codeString": "function Z1000(Z1000K1) { Z1000K1.reverse(); return Z1000K1; }",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "tRue"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z40K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z41"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z21"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z21"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z21"
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/javascript_no_Z14.json b/test_data/javascript_no_Z14.json
deleted file mode 100644
index 2e1797f..0000000
--- a/test_data/javascript_no_Z14.json
+++ /dev/null
@@ -1,24 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z8K4": {
- "Z10K1": {
- "Z14K3": {
- "Z16K1": {
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "javascript"
- }
- }
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
-}
diff --git a/test_data/javascript_no_Z8.json b/test_data/javascript_no_Z8.json
deleted file mode 100644
index a5509bd..0000000
--- a/test_data/javascript_no_Z8.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z8K4": {
- "Z10K1": {
- "Z14K3": {
- "Z16K1": {
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "javascript"
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/javascript_no_code_string.json b/test_data/javascript_no_code_string.json
deleted file mode 100644
index 97661ac..0000000
--- a/test_data/javascript_no_code_string.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "functionName": "Z1000",
- "functionArguments": {}
-}
diff --git a/test_data/javascript_no_function_name.json b/test_data/javascript_no_function_name.json
deleted file mode 100644
index 26544b7..0000000
--- a/test_data/javascript_no_function_name.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "codeString": "function Z1000() { return null; }",
- "functionArguments": {}
-}
diff --git a/test_data/javascript_syntax_failure.json b/test_data/javascript_syntax_failure.json
deleted file mode 100644
index 68927a2..0000000
--- a/test_data/javascript_syntax_failure.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "codeString": "function Z1000( Z1000K1, Z1000K2 ) { return (parseInt(Z1000K1) + parseInt(Z1000K2)).toString();",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
- }
-}
diff --git a/test_data/javascript_syntax_failure_expected.json b/test_data/javascript_syntax_failure_expected.json
deleted file mode 100644
index 4c77ba3..0000000
--- a/test_data/javascript_syntax_failure_expected.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- },
- "Z22K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z883"
- },
- "Z883K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z883K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "errors"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z5"
- },
- "Z5K2": {
- "Z1K1": "Z6",
- "Z6K1": "Unexpected end of input"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/javascript_throw.json b/test_data/javascript_throw.json
deleted file mode 100644
index a33896e..0000000
--- a/test_data/javascript_throw.json
+++ /dev/null
@@ -1,226 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z400K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z400K2"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- },
- "Z14K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z400"
- },
- "Z14K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z16"
- },
- "Z16K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z61"
- },
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "javascript"
- }
- },
- "Z16K2": {
- "Z1K1": "Z6",
- "Z6K1": "function Z400( Z400K1, Z400K2 ) { throw new Error( 'Hello, this is a good day to die()' ); }"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z400"
- }
- },
- "Z400K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z400K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
-}
diff --git a/test_data/javascript_unsupported_output.json b/test_data/javascript_unsupported_output.json
deleted file mode 100644
index 8fc57b8..0000000
--- a/test_data/javascript_unsupported_output.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "codeString": "class A {}\nfunction Z1000() {\n\treturn new A();\n}",
- "functionName": "Z1000",
- "functionArguments": {}
-}
diff --git a/test_data/javascript_unsupported_output_expected.json b/test_data/javascript_unsupported_output_expected.json
deleted file mode 100644
index 176283d..0000000
--- a/test_data/javascript_unsupported_output_expected.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- },
- "Z22K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z883"
- },
- "Z883K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z883K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "errors"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z5"
- },
- "Z5K2": {
- "Z1K1": "Z6",
- "Z6K1": "Could not serialize input JS object: A {}"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/javascript_user_defined_input.json b/test_data/javascript_user_defined_input.json
deleted file mode 100644
index 0b43dc3..0000000
--- a/test_data/javascript_user_defined_input.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "codeString": "function Z1000(Z1000K1) { return Z1000K1; }",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": null
- }
-}
diff --git a/test_data/list_list_string_input_javascript_implementation.json b/test_data/list_list_string_input_javascript_implementation.json
deleted file mode 100644
index 36cb590..0000000
--- a/test_data/list_list_string_input_javascript_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "function Z1000(Z1000K1) { return Z1000K1[0][0]; }"
-}
diff --git a/test_data/list_list_string_input_python3_implementation.json b/test_data/list_list_string_input_python3_implementation.json
deleted file mode 100644
index 4c55c47..0000000
--- a/test_data/list_list_string_input_python3_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "def Z1000(Z1000K1):\n\treturn Z1000K1[0][0]"
-}
diff --git a/test_data/list_list_string_output_javascript_implementation.json b/test_data/list_list_string_output_javascript_implementation.json
deleted file mode 100644
index f9cb756..0000000
--- a/test_data/list_list_string_output_javascript_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "function Z1000(Z1000K1) { return [[Z1000K1, 'element[0][1]']]; }"
-}
diff --git a/test_data/list_list_string_output_python3_implementation.json b/test_data/list_list_string_output_python3_implementation.json
deleted file mode 100644
index 4047338..0000000
--- a/test_data/list_list_string_output_python3_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "def Z1000(Z1000K1):\n\treturn [[Z1000K1, 'element[0][1]']]"
-}
diff --git a/test_data/list_list_strings.json b/test_data/list_list_strings.json
deleted file mode 100644
index 7267db3..0000000
--- a/test_data/list_list_strings.json
+++ /dev/null
@@ -1,1622 +0,0 @@
-{
- "K1": {
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "element[0][0]"
- },
- "K2": {
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "element[0][1]"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
-}
diff --git a/test_data/map_string_bool.json b/test_data/map_string_bool.json
deleted file mode 100644
index 54a8adf..0000000
--- a/test_data/map_string_bool.json
+++ /dev/null
@@ -1,2020 +0,0 @@
-{
- "K1": {
- "K1": {
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "true?"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z40K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z41"
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z883"
- },
- "Z883K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z883K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
-}
diff --git a/test_data/map_string_string.json b/test_data/map_string_string.json
deleted file mode 100644
index 9bc40bf..0000000
--- a/test_data/map_string_string.json
+++ /dev/null
@@ -1,2014 +0,0 @@
-{
- "K1": {
- "K1": {
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "true?"
- },
- "K2": {
- "Z1K1": "Z6",
- "Z6K1": "true"
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z883"
- },
- "Z883K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z883K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z110"
- }
- }
-}
diff --git a/test_data/map_string_string_Z7.json b/test_data/map_string_string_Z7.json
deleted file mode 100644
index 074be18..0000000
--- a/test_data/map_string_string_Z7.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "codeString": null,
- "functionName": "Z1802",
- "functionArguments": {
- "Z1802K1": null,
- "Z1802K2": {
- "Z1K1": "Z6",
- "Z6K1": "true?"
- }
- }
-}
diff --git a/test_data/map_string_string_javascript_implementation.json b/test_data/map_string_string_javascript_implementation.json
deleted file mode 100644
index 89cd70a..0000000
--- a/test_data/map_string_string_javascript_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "function Z1802(Z1802K1, Z1802K2) { return new Map([[Z1802K2, Z1802K1.get(Z1802K2).toString()]]); }"
-}
diff --git a/test_data/map_string_string_python3_implementation.json b/test_data/map_string_string_python3_implementation.json
deleted file mode 100644
index dddd6ba..0000000
--- a/test_data/map_string_string_python3_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "def Z1802(Z1802K1, Z1802K2):\n return {Z1802K2: str(Z1802K1[Z1802K2]).lower()}"
-}
diff --git a/test_data/no_code_string_expected.json b/test_data/no_code_string_expected.json
deleted file mode 100644
index 990c534..0000000
--- a/test_data/no_code_string_expected.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- },
- "Z22K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z883"
- },
- "Z883K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z883K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "errors"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z5"
- },
- "Z5K2": {
- "Z1K1": "Z6",
- "Z6K1": "Function call did not provide codeString."
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/no_function_name_expected.json b/test_data/no_function_name_expected.json
deleted file mode 100644
index d83e9e3..0000000
--- a/test_data/no_function_name_expected.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- },
- "Z22K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z883"
- },
- "Z883K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z883K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "errors"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z5"
- },
- "Z5K2": {
- "Z1K1": "Z6",
- "Z6K1": "Function call did not provide functionName."
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/no_implementation_throw.json b/test_data/no_implementation_throw.json
deleted file mode 100644
index 68be836..0000000
--- a/test_data/no_implementation_throw.json
+++ /dev/null
@@ -1,180 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K2"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
-}
diff --git a/test_data/pair_string_pair_string_string.json b/test_data/pair_string_pair_string_string.json
deleted file mode 100644
index 76fb513..0000000
--- a/test_data/pair_string_pair_string_string.json
+++ /dev/null
@@ -1,576 +0,0 @@
-{
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "\u0633\u0631 \u062f\u0648\u0631\u0627\u0647\u06cc \u06cc\u06a9 \u0642\u0644\u0639\u0647 \u0628\u0648\u062f"
- },
- "K2": {
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "moonbeam"
- },
- "K2": {
- "Z1K1": "Z6",
- "Z6K1": "stone"
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- }
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K1"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "K2"
- },
- "Z3K3": {
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- },
- "Z1K1": "Z12"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
-}
diff --git a/test_data/pair_string_pair_string_string_input.json b/test_data/pair_string_pair_string_string_input.json
deleted file mode 100644
index 5ad3597..0000000
--- a/test_data/pair_string_pair_string_string_input.json
+++ /dev/null
@@ -1,106 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z10101"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": null,
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1000K1": null
-}
diff --git a/test_data/pair_string_pair_string_string_input_javascript_implementation.json b/test_data/pair_string_pair_string_string_input_javascript_implementation.json
deleted file mode 100644
index 60fbdfd..0000000
--- a/test_data/pair_string_pair_string_string_input_javascript_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "function Z1000(Z1000K1) { return Z1000K1.K2.K1; }"
-}
diff --git a/test_data/pair_string_pair_string_string_input_python3_implementation.json b/test_data/pair_string_pair_string_string_input_python3_implementation.json
deleted file mode 100644
index 40337d9..0000000
--- a/test_data/pair_string_pair_string_string_input_python3_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "def Z1000(Z1000K1):\n\treturn Z1000K1.K2.K1"
-}
diff --git a/test_data/pair_string_pair_string_string_output_javascript_implementation.json b/test_data/pair_string_pair_string_string_output_javascript_implementation.json
deleted file mode 100644
index 97f0b47..0000000
--- a/test_data/pair_string_pair_string_string_output_javascript_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "function Z1000(Z1000K1) { \n\treturn new ZPair('\u0633\u0631 \u062f\u0648\u0631\u0627\u0647\u06cc \u06cc\u06a9 \u0642\u0644\u0639\u0647 \u0628\u0648\u062f', new ZPair(Z1000K1, 'stone')); }"
-}
diff --git a/test_data/pair_string_pair_string_string_output_python3_implementation.json b/test_data/pair_string_pair_string_string_output_python3_implementation.json
deleted file mode 100644
index 2afa1a8..0000000
--- a/test_data/pair_string_pair_string_string_output_python3_implementation.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "def Z1000(Z1000K1):\n\treturn ZPair('\u0633\u0631 \u062f\u0648\u0631\u0627\u0647\u06cc \u06cc\u06a9 \u0642\u0644\u0639\u0647 \u0628\u0648\u062f', ZPair(Z1000K1, 'stone'))"
-}
diff --git a/test_data/python3_add.json b/test_data/python3_add.json
deleted file mode 100644
index c22a27e..0000000
--- a/test_data/python3_add.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "codeString": "def Z1000(Z1000K1, Z1000K2):\n\treturn str(int(Z1000K1) + int(Z1000K2))",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
- }
-}
diff --git a/test_data/python3_add_Z7.json b/test_data/python3_add_Z7.json
deleted file mode 100644
index 8880c1d..0000000
--- a/test_data/python3_add_Z7.json
+++ /dev/null
@@ -1,226 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K2"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- },
- "Z14K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z100000"
- },
- "Z14K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z16"
- },
- "Z16K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z61"
- },
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "python-3"
- }
- },
- "Z16K2": {
- "Z1K1": "Z6",
- "Z6K1": "def Z1000(Z1000K1, Z1000K2):\n\treturn str(int(Z1000K1) + int(Z1000K2))"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
-}
diff --git a/test_data/python3_add_lambda.json b/test_data/python3_add_lambda.json
deleted file mode 100644
index cacb703..0000000
--- a/test_data/python3_add_lambda.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "codeString": "Z1000 = lambda Z1000K1, Z1000K2: str(int(Z1000K1) + int(Z1000K2))",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
- }
-}
diff --git a/test_data/python3_add_with_generics.json b/test_data/python3_add_with_generics.json
deleted file mode 100644
index c22a27e..0000000
--- a/test_data/python3_add_with_generics.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "codeString": "def Z1000(Z1000K1, Z1000K2):\n\treturn str(int(Z1000K1) + int(Z1000K2))",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
- }
-}
diff --git a/test_data/python3_add_with_generics_Z7.json b/test_data/python3_add_with_generics_Z7.json
deleted file mode 100644
index 8880c1d..0000000
--- a/test_data/python3_add_with_generics_Z7.json
+++ /dev/null
@@ -1,226 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K2"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- },
- "Z14K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z100000"
- },
- "Z14K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z16"
- },
- "Z16K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z61"
- },
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "python-3"
- }
- },
- "Z16K2": {
- "Z1K1": "Z6",
- "Z6K1": "def Z1000(Z1000K1, Z1000K2):\n\treturn str(int(Z1000K1) + int(Z1000K2))"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
-}
diff --git a/test_data/python3_compound_type.json b/test_data/python3_compound_type.json
deleted file mode 100644
index d6e2dbe..0000000
--- a/test_data/python3_compound_type.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "codeString": "def Z1000(Z1000K1):\n\treturn reversed(Z1000K1)",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "tRue"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z40K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z41"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z21"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/python3_compound_type_generic.json b/test_data/python3_compound_type_generic.json
deleted file mode 100644
index d6e2dbe..0000000
--- a/test_data/python3_compound_type_generic.json
+++ /dev/null
@@ -1,90 +0,0 @@
-{
- "codeString": "def Z1000(Z1000K1):\n\treturn reversed(Z1000K1)",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "tRue"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z40"
- },
- "Z40K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z41"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z21"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/python3_foo.json b/test_data/python3_foo.json
deleted file mode 100644
index 88bd32f..0000000
--- a/test_data/python3_foo.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "codeString": "def Z1000(): return 'foo'",
- "functionName": "Z1000"
-}
diff --git a/test_data/python3_no_Z14.json b/test_data/python3_no_Z14.json
deleted file mode 100644
index 04c1a3e..0000000
--- a/test_data/python3_no_Z14.json
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- }
-}
diff --git a/test_data/python3_no_Z8.json b/test_data/python3_no_Z8.json
deleted file mode 100644
index 575870c..0000000
--- a/test_data/python3_no_Z8.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- }
-}
diff --git a/test_data/python3_no_code_string.json b/test_data/python3_no_code_string.json
deleted file mode 100644
index 97661ac..0000000
--- a/test_data/python3_no_code_string.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "functionName": "Z1000",
- "functionArguments": {}
-}
diff --git a/test_data/python3_no_function_name.json b/test_data/python3_no_function_name.json
deleted file mode 100644
index 575870c..0000000
--- a/test_data/python3_no_function_name.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- }
-}
diff --git a/test_data/python3_syntax_failure.json b/test_data/python3_syntax_failure.json
deleted file mode 100644
index e9ff05f..0000000
--- a/test_data/python3_syntax_failure.json
+++ /dev/null
@@ -1,14 +0,0 @@
-{
- "codeString": "def Z1000(Z1000K1, Z1000K2):\n\treturn str(int(Z1000K1) + int(Z1000K2)",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
- }
-}
diff --git a/test_data/python3_syntax_failure_expected.json b/test_data/python3_syntax_failure_expected.json
deleted file mode 100644
index d67757a..0000000
--- a/test_data/python3_syntax_failure_expected.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- },
- "Z22K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z883"
- },
- "Z883K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z883K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "errors"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z5"
- },
- "Z5K2": {
- "Z1K1": "Z6",
- "Z6K1": "invalid syntax"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/python3_unsupported_output.json b/test_data/python3_unsupported_output.json
deleted file mode 100644
index da0bee7..0000000
--- a/test_data/python3_unsupported_output.json
+++ /dev/null
@@ -1,5 +0,0 @@
-{
- "codeString": "def Z1000():\n\tclass A:\n\t\tdef __repr__(self):\n\t\t\treturn '<A>'\n\treturn A()",
- "functionName": "Z1000",
- "functionArguments": {}
-}
diff --git a/test_data/python3_unsupported_output_expected.json b/test_data/python3_unsupported_output_expected.json
deleted file mode 100644
index 6ef5995..0000000
--- a/test_data/python3_unsupported_output_expected.json
+++ /dev/null
@@ -1,124 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- },
- "Z22K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z883"
- },
- "Z883K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z883K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- },
- "K1": {
- "Z1K1": "Z6",
- "Z6K1": "errors"
- },
- "K2": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z5"
- },
- "Z5K2": {
- "Z1K1": "Z6",
- "Z6K1": "Could not serialize input Python object: <A>"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z882"
- },
- "Z882K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z882K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z1"
- }
- }
- }
- }
- }
- }
-}
diff --git a/test_data/python3_user_defined_input.json b/test_data/python3_user_defined_input.json
deleted file mode 100644
index 65c89ff..0000000
--- a/test_data/python3_user_defined_input.json
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "codeString": "def Z1000(Z1000K1):\n\treturn Z1000K1",
- "functionName": "Z1000",
- "functionArguments": {
- "Z1000K1": null
- }
-}
diff --git a/test_data/python_unsupported_version_throw.json b/test_data/python_unsupported_version_throw.json
deleted file mode 100644
index 646a6d3..0000000
--- a/test_data/python_unsupported_version_throw.json
+++ /dev/null
@@ -1,226 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K2"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- },
- "Z14K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z100000"
- },
- "Z14K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z16"
- },
- "Z16K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z61"
- },
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "python-1"
- }
- },
- "Z16K2": {
- "Z1K1": "Z6",
- "Z6K1": "def Z1000(Z1000K1, Z1000K2):\n\treturn str(int(Z1000K1) + int(Z1000K2))"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
-}
diff --git a/test_data/result_envelope_template.json b/test_data/result_envelope_template.json
deleted file mode 100644
index 4341445..0000000
--- a/test_data/result_envelope_template.json
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": null,
- "Z22K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- }
-}
diff --git a/test_data/string_in_lists.json b/test_data/string_in_lists.json
deleted file mode 100644
index bbe22f1..0000000
--- a/test_data/string_in_lists.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "element[0][0]"
-}
diff --git a/test_data/string_in_pairs.json b/test_data/string_in_pairs.json
deleted file mode 100644
index cbcc26f..0000000
--- a/test_data/string_in_pairs.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- "Z1K1": "Z6",
- "Z6K1": "moonbeam"
-}
diff --git a/test_data/unsupported_language_java_throw.json b/test_data/unsupported_language_java_throw.json
deleted file mode 100644
index 592b04b..0000000
--- a/test_data/unsupported_language_java_throw.json
+++ /dev/null
@@ -1,226 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z8"
- },
- "Z8K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K1"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- },
- "Z17K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z17K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z1000K2"
- },
- "Z17K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z12"
- },
- "Z12K1": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z11"
- }
- }
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z17"
- }
- }
- }
- }
- },
- "Z8K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z8K3": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z20"
- }
- }
- },
- "Z8K4": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- },
- "Z14K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z100000"
- },
- "Z14K3": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z16"
- },
- "Z16K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z61"
- },
- "Z61K1": {
- "Z1K1": "Z6",
- "Z6K1": "Java"
- }
- },
- "Z16K2": {
- "Z1K1": "Z6",
- "Z6K1": "public static String Z1000(String Z1000K1, String Z1000K2){\n\treturn String.valueOf(Integer.valueOf(Z1000K1) + Integer.valueOf(Z1000K2));}"
- }
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z14"
- }
- }
- }
- },
- "Z8K5": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z1000K1": {
- "Z1K1": "Z6",
- "Z6K1": "5"
- },
- "Z1000K2": {
- "Z1K1": "Z6",
- "Z6K1": "8"
- }
-}
diff --git a/test_data/user_defined_input_Z1000K1.json b/test_data/user_defined_input_Z1000K1.json
deleted file mode 100644
index b11c2fa..0000000
--- a/test_data/user_defined_input_Z1000K1.json
+++ /dev/null
@@ -1,70 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z4"
- },
- "Z4K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z10000"
- },
- "Z4K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- },
- "K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- },
- "Z3K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z6"
- },
- "Z3K2": {
- "Z1K1": "Z6",
- "Z6K1": "Z10000K1"
- },
- "Z3K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "K2": {
- "Z1K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z7"
- },
- "Z7K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z881"
- },
- "Z881K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z3"
- }
- }
- }
- },
- "Z4K3": {
- "Z1K1": "Z9",
- "Z9K1": "Z1000"
- }
- },
- "Z10000K1": {
- "Z1K1": "Z6",
- "Z6K1": "cerebellum"
- }
-}
diff --git a/test_data/user_defined_input_expected.json b/test_data/user_defined_input_expected.json
deleted file mode 100644
index ffe411a..0000000
--- a/test_data/user_defined_input_expected.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z22"
- },
- "Z22K1": {
- "Z1K1": {
- "Z1K1": "Z9",
- "Z9K1": "Z10000"
- },
- "Z10000K1": {
- "Z1K1": "Z6",
- "Z6K1": "cerebellum"
- }
- },
- "Z22K2": {
- "Z1K1": "Z9",
- "Z9K1": "Z24"
- }
-}