diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000..8764879
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1,4 @@
+# These are supported funding model platforms
+
+github: [ranas-mukminov]
+custom: ["https://run-as-daemon.ru/support"]
diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
new file mode 100644
index 0000000..ec99b97
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -0,0 +1,151 @@
+name: Bug Report
+description: Report a bug or issue with the MongoDB Grafana plugin
+title: "[BUG] "
+labels: ["bug", "needs-triage"]
+assignees: []
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thank you for reporting a bug! Please fill out the information below to help us resolve the issue.
+
+ - type: textarea
+ id: description
+ attributes:
+ label: Bug Description
+ description: A clear and concise description of what the bug is.
+ placeholder: Describe the bug...
+ validations:
+ required: true
+
+ - type: textarea
+ id: steps
+ attributes:
+ label: Steps to Reproduce
+ description: Steps to reproduce the behavior
+ placeholder: |
+ 1. Go to '...'
+ 2. Configure '...'
+ 3. Run query '...'
+ 4. See error
+ validations:
+ required: true
+
+ - type: textarea
+ id: expected
+ attributes:
+ label: Expected Behavior
+ description: What you expected to happen
+ placeholder: Describe what should happen...
+ validations:
+ required: true
+
+ - type: textarea
+ id: actual
+ attributes:
+ label: Actual Behavior
+ description: What actually happened
+ placeholder: Describe what actually happened...
+ validations:
+ required: true
+
+ - type: input
+ id: grafana-version
+ attributes:
+ label: Grafana Version
+ description: What version of Grafana are you using?
+ placeholder: e.g., 10.2.0
+ validations:
+ required: true
+
+ - type: input
+ id: mongodb-version
+ attributes:
+ label: MongoDB Version
+ description: What version of MongoDB are you using?
+ placeholder: e.g., 6.0.3
+ validations:
+ required: true
+
+ - type: input
+ id: plugin-version
+ attributes:
+ label: Plugin Version
+ description: What version of the mongodb-grafana plugin are you using?
+ placeholder: e.g., 0.8.1
+ validations:
+ required: true
+
+ - type: input
+ id: nodejs-version
+ attributes:
+ label: Node.js Version
+ description: What version of Node.js is the proxy server running on?
+ placeholder: e.g., 16.20.0
+ validations:
+ required: false
+
+ - type: dropdown
+ id: os
+ attributes:
+ label: Operating System
+ description: What operating system are you using?
+ options:
+ - Linux
+ - macOS
+ - Windows
+ - Docker
+ - Other
+ validations:
+ required: true
+
+ - type: textarea
+ id: query
+ attributes:
+ label: MongoDB Query
+ description: If applicable, paste the MongoDB aggregation query you're using
+ placeholder: |
+ db.collection.aggregate([
+ // Your query here
+ ])
+ render: javascript
+
+ - type: textarea
+ id: logs
+ attributes:
+ label: Relevant Logs
+ description: |
+ Please include relevant log output from:
+ - Grafana server logs
+ - MongoDB proxy logs
+ - Browser console (if applicable)
+ placeholder: Paste logs here...
+ render: shell
+
+ - type: textarea
+ id: screenshots
+ attributes:
+ label: Screenshots
+ description: If applicable, add screenshots to help explain your problem
+
+ - type: textarea
+ id: additional
+ attributes:
+ label: Additional Context
+ description: Add any other context about the problem here
+
+ - type: checkboxes
+ id: checklist
+ attributes:
+ label: Pre-submission Checklist
+ description: Please confirm the following before submitting
+ options:
+ - label: I have searched existing issues to ensure this bug hasn't been reported
+ required: true
+ - label: I have included all relevant version information
+ required: true
+ - label: I have provided steps to reproduce the issue
+ required: true
+ - label: I have included relevant logs or error messages
+ required: false
diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml
new file mode 100644
index 0000000..125da84
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/feature_request.yml
@@ -0,0 +1,136 @@
+name: Feature Request
+description: Suggest a new feature or enhancement for the MongoDB Grafana plugin
+title: "[FEATURE] "
+labels: ["enhancement", "needs-triage"]
+assignees: []
+
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thank you for suggesting a feature! Please fill out the information below.
+
+ **Note**: This is a community-maintained fork. Feature implementation depends on community contributions and maintainer availability.
+
+ - type: textarea
+ id: problem
+ attributes:
+ label: Problem Statement
+ description: Is your feature request related to a problem? Please describe.
+ placeholder: I'm frustrated when... / I need to... / It would be helpful if...
+ validations:
+ required: true
+
+ - type: textarea
+ id: solution
+ attributes:
+ label: Proposed Solution
+ description: Describe the solution you'd like to see
+ placeholder: I would like to see... / The plugin should... / It would work like...
+ validations:
+ required: true
+
+ - type: textarea
+ id: alternatives
+ attributes:
+ label: Alternatives Considered
+ description: Describe any alternative solutions or features you've considered
+ placeholder: |
+ - Alternative 1: ...
+ - Alternative 2: ...
+ - Current workaround: ...
+
+ - type: dropdown
+ id: component
+ attributes:
+ label: Component
+ description: Which component would this feature affect?
+ options:
+ - Grafana Plugin (Frontend UI)
+ - MongoDB Proxy Server (Backend)
+ - Query Handling
+ - Configuration
+ - Documentation
+ - Build/Deployment
+ - Other
+ validations:
+ required: true
+
+ - type: dropdown
+ id: priority
+ attributes:
+ label: Priority
+ description: How important is this feature to you?
+ options:
+ - Critical - Blocking my use of the plugin
+ - High - Significantly improves my workflow
+ - Medium - Nice to have enhancement
+ - Low - Minor improvement
+ validations:
+ required: true
+
+ - type: textarea
+ id: use-case
+ attributes:
+ label: Use Case
+ description: Describe your specific use case for this feature
+ placeholder: |
+ In my project, we need to...
+ We have X number of dashboards that...
+ Our team frequently needs to...
+ validations:
+ required: true
+
+ - type: textarea
+ id: example
+ attributes:
+ label: Example
+ description: If applicable, provide a concrete example of how this feature would be used
+ placeholder: |
+ 1. User configures...
+ 2. User runs query...
+ 3. System displays...
+
+ - type: textarea
+ id: mockup
+ attributes:
+ label: Mockup/Screenshot
+ description: If applicable, add mockups or screenshots to help explain your feature
+
+ - type: checkboxes
+ id: upstream
+ attributes:
+ label: Upstream Compatibility
+ description: Should this feature be compatible with the upstream project?
+ options:
+ - label: This feature should maintain compatibility with JamesOsgood/mongodb-grafana
+ - label: This is a fork-specific enhancement that doesn't need upstream compatibility
+
+ - type: checkboxes
+ id: contribution
+ attributes:
+ label: Contribution
+ description: Are you willing to contribute to implementing this feature?
+ options:
+ - label: I am willing to submit a pull request for this feature
+ - label: I can help test this feature once implemented
+ - label: I can help with documentation for this feature
+
+ - type: textarea
+ id: additional
+ attributes:
+ label: Additional Context
+ description: Add any other context, links, or references about the feature request
+
+ - type: checkboxes
+ id: checklist
+ attributes:
+ label: Pre-submission Checklist
+ description: Please confirm the following before submitting
+ options:
+ - label: I have searched existing issues to ensure this hasn't been requested
+ required: true
+ - label: I have described the problem and proposed solution clearly
+ required: true
+ - label: I understand this is a community project with no guaranteed implementation timeline
+ required: true
diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md
new file mode 100644
index 0000000..60554f1
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.md
@@ -0,0 +1,139 @@
+## Description
+
+
+
+## Type of Change
+
+
+
+- [ ] Bug fix (non-breaking change that fixes an issue)
+- [ ] New feature (non-breaking change that adds functionality)
+- [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
+- [ ] Documentation update
+- [ ] Dependency update
+- [ ] Configuration/build change
+- [ ] Refactoring (no functional changes)
+
+## Related Issue
+
+
+Fixes #(issue number)
+
+## Changes Made
+
+
+
+-
+-
+-
+
+## Motivation and Context
+
+
+
+## How Has This Been Tested?
+
+
+
+- [ ] Manual testing in Grafana UI
+- [ ] Unit tests added/updated
+- [ ] Integration tests added/updated
+- [ ] Tested with MongoDB version(s):
+- [ ] Tested with Grafana version(s):
+
+**Test Configuration**:
+- Node.js version:
+- MongoDB version:
+- Grafana version:
+- Operating System:
+
+## Screenshots (if applicable)
+
+
+
+## Checklist
+
+
+
+### Code Quality
+- [ ] My code follows the style guidelines of this project
+- [ ] I have performed a self-review of my own code
+- [ ] I have commented my code, particularly in hard-to-understand areas
+- [ ] My changes generate no new warnings or errors
+- [ ] I have checked for console errors in browser developer tools
+
+### Testing
+- [ ] I have added tests that prove my fix is effective or that my feature works
+- [ ] New and existing unit tests pass locally with my changes
+- [ ] I have tested this change with a real MongoDB instance
+- [ ] I have tested this change in a real Grafana environment
+
+### Documentation
+- [ ] I have updated the documentation accordingly (README, CHANGELOG, etc.)
+- [ ] I have added/updated JSDoc comments for new/modified functions
+- [ ] I have updated examples if needed
+
+### Compatibility
+- [ ] My changes are backwards compatible with existing configurations
+- [ ] I have considered the impact on the upstream project (JamesOsgood/mongodb-grafana)
+- [ ] My changes don't break existing dashboards or queries
+
+### Build
+- [ ] `npm run build` completes successfully
+- [ ] `npm test` passes (if tests exist)
+- [ ] No new dependencies added, or they are justified and documented
+
+## Dependencies
+
+
+
+- [ ] No new dependencies
+- [ ] New dependencies added (list below):
+ -
+
+## Breaking Changes
+
+
+
+- [ ] No breaking changes
+- [ ] Breaking changes (describe below):
+
+## Security Considerations
+
+
+
+- [ ] No security impact
+- [ ] Potential security impact (describe below):
+
+## Performance Impact
+
+
+
+- [ ] No performance impact
+- [ ] Performance improvement
+- [ ] Potential performance regression (describe and justify below):
+
+## Additional Notes
+
+
+
+## Reviewer Checklist
+
+
+
+- [ ] Code follows project style and conventions
+- [ ] Changes are well documented
+- [ ] Tests are adequate and pass
+- [ ] No obvious security issues
+- [ ] No obvious performance issues
+- [ ] Documentation is updated
+- [ ] Commits are clean and well-formatted
+- [ ] PR is ready to merge
+
+---
+
+## Professional Support
+
+Need help with implementation or have questions about contributing?
+
+Contact [run-as-daemon.ru](https://run-as-daemon.ru) for professional consulting and support services.
diff --git a/README.md b/README.md
index 43c90b8..0a8e9f1 100644
--- a/README.md
+++ b/README.md
@@ -1,136 +1,235 @@
-# MongoDB datasource for Grafana
+# MongoDB datasource for Grafana (run-as-daemon fork)
-## Features
-Allows MongoDB to be used as a data source for Grafana by providing a proxy to convert the Grafana Data source [API](http://docs.grafana.org/plugins/developing/datasources/) into MongoDB aggregation queries
+**Production-ready MongoDB datasource plugin for Grafana with professional support**
+
+[English] | [Русский](README.ru.md)
+
+> This is a maintained fork of [JamesOsgood/mongodb-grafana](https://github.com/JamesOsgood/mongodb-grafana) with improvements, Russian documentation, and professional SRE/DevOps services from [run-as-daemon.ru](https://run-as-daemon.ru)
+
+---
+
+## What this plugin does
+
+This plugin allows you to use MongoDB as a data source in Grafana. It works by running a Node.js HTTP proxy server that translates Grafana's data source API calls into MongoDB aggregation pipeline queries. This enables you to visualize MongoDB data directly in Grafana dashboards without writing custom code.
+
+**Key capabilities:**
+- Query MongoDB collections using aggregation pipelines
+- Time-series visualizations with automatic date range macros (`$from`, `$to`)
+- Template variables for dynamic dashboards
+- Table panel support for aggregated data
+- Auto-bucketing support with `$bucketAuto` and `$dateBucketCount`
+
+- **Grafana**: version 3.x.x or higher
+- **MongoDB**: version 3.4.x or higher
+- **Node.js**: version 6.10.0 or higher (for running the proxy server)
## Requirements
-* **Grafana** > 3.x.x
-* **MongoDB** > 3.4.x
+- **Grafana**: >= 3.x.x
+- **MongoDB**: >= 3.4.x (aggregation pipeline support required)
+- **Node.js**: >= 6.10.0 (for the proxy server)
+
+---
## Installation
-### Install the Grafana plugin components
+### 1. Install the Grafana plugin
+
+Copy the plugin directory into your Grafana plugins folder:
+
+```bash
+# Default Grafana plugins directory
+cp -r dist /var/lib/grafana/plugins/mongodb-grafana
+
+# Homebrew installation (macOS)
+cp -r dist /usr/local/var/lib/grafana/plugins/mongodb-grafana
+
+# Restart Grafana
+sudo systemctl restart grafana-server # Linux
+brew services restart grafana # macOS
+```
+# Local MongoDB
+mongodb://localhost:27017
+
+### 2. Install and start the MongoDB proxy server
+
+The proxy server runs separately from Grafana and handles the MongoDB connections:
-* Copy the whole mongodb-grafana dir into the Grafana plugins dir ( /usr/local/var/lib/grafana/plugins )
-* Restart the Grafana server. If installed via Homebrew, this will be `brew services restart grafana`
+```bash
+# Install dependencies
+npm install
-### Install and Start the MongoDB proxy server
+# Build the plugin
+npm run build
-* Open a command prompt in the mongodb-grafana directory
-* Run `npm install` to install the node.js dependencies
-* Run `npm run server` to start the REST API proxy to MongoDB. By default, the server listens on http://localhost:3333
+# Start the proxy server (default port 3333)
+npm run server
+```
-## Examples
+The server will listen on `http://localhost:3333` by default.
-Create a new data source of type MongoDB as shown below. The MongoDB details are :
+---
-* **MongoDB URL** - `mongodb://rpiread:rpiread@rpi-sensor-data-shard-00-00-ifxxs.mongodb.net:27017,rpi-sensor-data-shard-00-01-ifxxs.mongodb.net:27017,rpi-sensor-data-shard-00-02-ifxxs.mongodb.net:27017/test?ssl=true&replicaSet=rpi-sensor-data-shard-0&authSource=admin`
-* **MongoDB Database** - `rpi`
+## Quick Start with Docker
-
+For a quick demo or development setup, use Docker Compose:
-Then save the data source
+```bash
+cd examples
+docker-compose up -d
+```
-#### Example 1 - Simple aggregate to rename fields
+This starts:
+- Grafana on http://localhost:3000 (admin/admin)
+- MongoDB proxy on http://localhost:3333
+- MongoDB instance for testing
-Import the dashboard in `examples\RPI MongoDB - Atlas.json`
+See [examples/README.md](examples/README.md) for detailed instructions.
-This should show a graph of light sensor values from a Raspberry PI with an [EnviroPHAT](https://thepihut.com/products/enviro-phat) board feeding readings every minute into a MongoDB Atlas database.
+---
-
+## Basic Usage
-Clicking on the title of the graph allows you to see the aggregation query being run against the 'RPI Atlas' data source
+### Configure the data source in Grafana
-
+1. In Grafana, go to **Configuration → Data Sources**
+2. Click **Add data source**
+3. Select **MongoDB**
+4. Configure:
+ - **Name**: Choose a descriptive name
+ - **URL**: `http://localhost:3333` (the proxy server)
+ - **MongoDB URL**: Your MongoDB connection string
+ Example: `mongodb://user:pass@host:27017/database?authSource=admin`
+ - **MongoDB Database**: The database name to query
+5. Click **Save & Test**
-The query here is
+### Write your first query
+
+In a dashboard panel, use MongoDB aggregation syntax:
```javascript
-db.sensor_value.aggregate ( [
-{ "$match" : { "sensor_type" : "$sensor", "host_name" : "$host", "ts" : { "$gte" : "$from", "$lte" : "$to" } } },
- {"$sort" : {"ts" : 1}},
- {"$project" : { "name" : "value", "value" : "$sensor_value", "ts" : "$ts", "_id" : 0} } ])
- ```
+db.collection_name.aggregate([
+ { "$match": { "ts": { "$gte": "$from", "$lte": "$to" } } },
+ { "$sort": { "ts": 1 } },
+ { "$project": {
+ "name": "series_name",
+ "value": "$field_name",
+ "ts": "$timestamp_field",
+ "_id": 0
+ }}
+])
+```
- The API is expecting back documents with the following fields
+**Required fields in output:**
+- `name` - Series name (displayed in legend)
+- `value` - Numeric value for the data point
+- `ts` - Timestamp as a BSON date
- * `name` - Name of the series ( will be displayed on the graph)
- * `value` - The float value of the point
- * `ts` - The time of the point as a BSON date
+**Macros:**
+- `$from`, `$to` - Automatically replaced with dashboard time range (as BSON dates)
+- `$dateBucketCount` - Number of buckets for time-series aggregation
+- Template variables like `$variableName` are substituted from Grafana variables
- These documents are then converted into the [Grafana API](http://docs.grafana.org/plugins/developing/datasources/)
+### Sample dashboards
-`$from` and `$to` are expanded by the plugin as BSON dates based on the range settings on the UI.
+Check the [examples/](examples/) directory for:
+- `RPI MongoDB - Atlas.json` - Simple time-series dashboard
+- `RPI MongoDB Bucket - Atlas.json` - Using `$bucketAuto` for aggregation
+- `Sensor Value Counts - Atlas.json` - Table panel example
-## Template Variables
+---
-`$sensor` and `$host` are template variables that are filled in by Grafana based on the drop down. The sample template queries are shown below. They expect documents to be returned with a single `_id` field.
+## Limitations and Notes
+- **Aggregation only**: This plugin uses MongoDB's aggregation framework. Direct find queries are not supported.
+- **Time-series format**: Output documents must have `name`, `value`, and `ts` fields for graph panels.
+- **Table panels**: Use `_id: 0` projection and return `name`, `value`, `ts` fields.
+- **Authentication**: Ensure the MongoDB user has read permissions on queried collections.
+- **Network**: The proxy server must have network access to MongoDB and be reachable by Grafana.
-
+---
-#### Example 2 - Using $bucketAuto to push data point aggregation to the server
+## Professional SRE/DevOps Services
-Grafana tells the backend server the date range along with the size of the buckets that should be used to calculate points. Therefore it's possible to use the MongoDB aggregation operator [$bucketAuto](https://docs.mongodb.com/manual/reference/operator/aggregation/bucketAuto/) to automatically bucket the data points into display points. To support this the backend provides the `$dateBucketCount` macro so that queries such as the one below can be written
+This fork is maintained by **[run-as-daemon.ru](https://run-as-daemon.ru)** – a team of SRE and DevOps engineers specializing in monitoring, observability, and database operations.
-```javascript
-db.sensor_value.aggregate( [
-{ "$match" : { "sensor_type" : "$sensor", "host_name" : "$host" , "ts" : { "$gte" : "$from", "$lt" : "$to" }}},
-{ "$bucketAuto" : { "groupBy" : "$ts",
- "buckets" : "$dateBucketCount",
- "output" : { "maxValue" : { "$max" : "$sensor_value" } } } },
-{ "$project" : { "name" : "value", "value" : "$maxValue", "ts" : "$_id.min", "_id" : 0 } } ] )
-```
-Note that ```_id``` field of the bucketAuto output contains the start and end of the bucket so we can use that as the ```ts``` value
+### Available Services
-The dashboard in `examples\RPI MongoDB Bucket - Atlas.json` shows this.
+🔧 **MongoDB + Grafana Monitoring Stack Design & Deployment**
+Complete setup of production-grade monitoring infrastructure with MongoDB as a data source, including HA configuration, security hardening, and custom dashboards.
-#### Example 3 - Using a Tabel Panel
+⚡ **MongoDB Performance Tuning & Index Optimization**
+Expert analysis and optimization of MongoDB queries, aggregation pipelines, and indexes to ensure fast dashboard load times and efficient data retrieval.
-
+📊 **Production Dashboard & Alert Development**
+Custom Grafana dashboards tailored to your business metrics, SLIs/SLOs, with intelligent alerting rules integrated with your incident management tools.
-Table panels are now supported with queries of the form
+🏗️ **High Availability & Backup Strategies for MongoDB**
+Design and implementation of MongoDB replica sets, sharding strategies, automated backups, and disaster recovery procedures.
-```javascript
-db.sensor_value.aggregate(
-[
- { "$match" : { "ts" : { "$gte" : "$from", "$lt" : "$to" }}},
- { "$group": { "_id": { "sensor_name" : "$sensor_name", "sensor_type" : "$sensor_type" }, "cnt" : { "$sum" : 1 }, "ts" : { "$max" : "$ts" } } },
- { "$project": { "name" : { "$concat" : ["$_id.sensor_name",":","$_id.sensor_type" ]}, "value" : "$cnt", "ts" : 1, "_id" : 0} }
-])
-```
+📈 **Observability Consulting & Training**
+Team training on MongoDB monitoring best practices, query optimization, and Grafana dashboard development.
+
+**Contact us**: [run-as-daemon.ru](https://run-as-daemon.ru)
+**Email**: contact@run-as-daemon.ru
+**Telegram**: @run_as_daemon
+
+---
+
+## Support / Thanks
+
+If you find this plugin useful:
+
+- ⭐ **Star this repository** to show your support
+- 📢 **Share it** with colleagues who use Grafana + MongoDB
+- 💬 **Report issues** or request features via [GitHub Issues](https://github.com/ranas-mukminov/mongodb-grafana/issues)
+- 💝 **Sponsor**: Use the Sponsor button on GitHub or visit [run-as-daemon.ru/support](https://run-as-daemon.ru/support)
+
+Your support helps maintain this project and keep it compatible with the latest Grafana and MongoDB versions.
+
+---
+
+## Contributing
-The dashboard in `examples\Sensor Values Count - Atlas.json` shows this.
+Contributions are welcome! Please:
+1. Fork the repository
+2. Create a feature branch
+3. Make your changes (keeping compatibility with upstream)
+4. Submit a pull request
-## Running the proxy as a service on a Mac
+See our [Contributing Guidelines](CONTRIBUTING.md) for more details.
-* Install [forever-mac](https://www.npmjs.com/package/forever-mac)
-* Copy server/mongodb-grafana-proxy.plist to ~/Library/LaunchAgents
-* run `launchctl load mongodb-grafana-proxy` from ~/Library/LaunchAgents
+---
-This launch ctrl plist runs the node script via forever. To check it's running, use `forever list`. Logs go into /usr/local/var/lib/grafana/plugins/mongodb-grafana/dist/server
+## License
-## Development
+ISC License
-To run grafana against a dev version of the plugin on a mac using grafana installed via Homebrew
-
-* Stop the grafana service `brew services stop grafana`
-* Open a command prompt in /debugging
-* Run ./start_grafana.sh
-* Alter code
-* npm run build to build the UI
-* Developer tools -> empty cache and hard reload
+Original work by James Osgood
+Fork maintained by [run-as-daemon.ru](https://run-as-daemon.ru)
-Note
+---
-* Homebrew grafana versions in /usr/local/Cellar
+**Made with ❤️ by the MongoDB + Grafana community and [run-as-daemon.ru](https://run-as-daemon.ru)**
+---
+## License
+ISC License
+Original work by James Osgood
+Fork maintained by [run-as-daemon.ru](https://run-as-daemon.ru)
+---
+## Links
+- [Original Repository](https://github.com/JamesOsgood/mongodb-grafana)
+- [Grafana Documentation](https://grafana.com/docs/)
+- [MongoDB Aggregation Pipeline](https://docs.mongodb.com/manual/core/aggregation-pipeline/)
+- [run-as-daemon Services](https://run-as-daemon.ru)
+---
+**Made with ❤️ by the MongoDB-Grafana community and [run-as-daemon.ru](https://run-as-daemon.ru)**
diff --git a/README.ru.md b/README.ru.md
new file mode 100644
index 0000000..ec57606
--- /dev/null
+++ b/README.ru.md
@@ -0,0 +1,210 @@
+# MongoDB datasource для Grafana (форк run-as-daemon)
+
+**Готовый к production плагин MongoDB datasource для Grafana с профессиональной поддержкой**
+
+[Русский] | [English](README.md)
+
+> Это поддерживаемый форк [JamesOsgood/mongodb-grafana](https://github.com/JamesOsgood/mongodb-grafana) с улучшениями, русской документацией и профессиональными SRE/DevOps услугами от [run-as-daemon.ru](https://run-as-daemon.ru)
+
+---
+
+## Что делает этот плагин
+
+Данный плагин позволяет использовать MongoDB в качестве источника данных в Grafana. Он работает через Node.js HTTP-прокси сервер, который преобразует вызовы API Grafana в запросы MongoDB aggregation pipeline. Это даёт возможность визуализировать данные из MongoDB прямо в дашбордах Grafana без написания кастомного кода.
+
+**Основные возможности:**
+- Запросы к коллекциям MongoDB через aggregation pipelines
+- Визуализация временных рядов с автоматическими макросами дат (`$from`, `$to`)
+- Переменные шаблонов для динамических дашбордов
+- Поддержка таблиц для агрегированных данных
+- Автоматическое группирование с `$bucketAuto` и `$dateBucketCount`
+
+---
+
+## Требования
+
+- **Grafana**: >= 3.x.x
+- **MongoDB**: >= 3.4.x (требуется поддержка aggregation pipeline)
+- **Node.js**: >= 6.10.0 (для прокси-сервера)
+
+---
+
+## Установка
+
+### 1. Установка плагина Grafana
+
+Скопируйте директорию плагина в папку плагинов Grafana:
+
+```bash
+# Стандартная директория плагинов Grafana
+cp -r dist /var/lib/grafana/plugins/mongodb-grafana
+
+# Установка через Homebrew (macOS)
+cp -r dist /usr/local/var/lib/grafana/plugins/mongodb-grafana
+
+# Перезапустите Grafana
+sudo systemctl restart grafana-server # Linux
+brew services restart grafana # macOS
+```
+
+### 2. Установка и запуск прокси-сервера MongoDB
+
+Прокси-сервер работает отдельно от Grafana и обрабатывает подключения к MongoDB:
+
+```bash
+# Установка зависимостей
+npm install
+
+# Сборка плагина
+npm run build
+
+# Запуск прокси-сервера (по умолчанию порт 3333)
+npm run server
+```
+
+Сервер будет слушать на `http://localhost:3333` по умолчанию.
+
+---
+
+## Быстрый старт с Docker
+
+Для быстрого демо или разработки используйте Docker Compose:
+
+```bash
+cd examples
+docker-compose up -d
+```
+
+Это запустит:
+- Grafana на http://localhost:3000 (admin/admin)
+- MongoDB прокси на http://localhost:3333
+- MongoDB для тестирования
+
+Подробные инструкции см. в [examples/README.md](examples/README.md).
+
+---
+
+## Базовое использование
+
+### Настройка источника данных в Grafana
+
+1. В Grafana перейдите в **Configuration → Data Sources**
+2. Нажмите **Add data source**
+3. Выберите **MongoDB**
+4. Настройте:
+ - **Name**: Выберите описательное имя
+ - **URL**: `http://localhost:3333` (прокси-сервер)
+ - **MongoDB URL**: Строка подключения к MongoDB
+ Пример: `mongodb://user:pass@host:27017/database?authSource=admin`
+ - **MongoDB Database**: Имя базы данных для запросов
+5. Нажмите **Save & Test**
+
+### Напишите первый запрос
+
+В панели дашборда используйте синтаксис MongoDB aggregation:
+
+```javascript
+db.collection_name.aggregate([
+ { "$match": { "ts": { "$gte": "$from", "$lte": "$to" } } },
+ { "$sort": { "ts": 1 } },
+ { "$project": {
+ "name": "series_name",
+ "value": "$field_name",
+ "ts": "$timestamp_field",
+ "_id": 0
+ }}
+])
+```
+
+**Обязательные поля в выводе:**
+- `name` - Имя серии (отображается в легенде)
+- `value` - Числовое значение точки данных
+- `ts` - Временная метка как BSON date
+
+**Макросы:**
+- `$from`, `$to` - Автоматически заменяются временным диапазоном дашборда (как BSON dates)
+- `$dateBucketCount` - Количество корзин для агрегации временных рядов
+- Переменные шаблонов типа `$variableName` подставляются из переменных Grafana
+
+### Примеры дашбордов
+
+Проверьте директорию [examples/](examples/) для:
+- `RPI MongoDB - Atlas.json` - Простой дашборд временных рядов
+- `RPI MongoDB Bucket - Atlas.json` - Использование `$bucketAuto` для агрегации
+- `Sensor Value Counts - Atlas.json` - Пример табличной панели
+
+---
+
+## Ограничения и замечания
+
+- **Только aggregation**: Плагин использует aggregation framework MongoDB. Прямые find-запросы не поддерживаются.
+- **Формат временных рядов**: Выходные документы должны содержать поля `name`, `value` и `ts` для графиков.
+- **Табличные панели**: Используйте проекцию `_id: 0` и возвращайте поля `name`, `value`, `ts`.
+- **Аутентификация**: Убедитесь, что пользователь MongoDB имеет права на чтение запрашиваемых коллекций.
+- **Сеть**: Прокси-сервер должен иметь доступ к MongoDB и быть доступным для Grafana.
+
+---
+
+## Профессиональные SRE/DevOps услуги
+
+Этот форк поддерживается **[run-as-daemon.ru](https://run-as-daemon.ru)** – командой SRE и DevOps инженеров, специализирующихся на мониторинге, observability и операциях с базами данных.
+
+### Доступные услуги
+
+🔧 **Проектирование и развёртывание стека мониторинга MongoDB + Grafana**
+Полная настройка production-ready инфраструктуры мониторинга с MongoDB в качестве источника данных, включая HA-конфигурацию, усиление безопасности и кастомные дашборды.
+
+⚡ **Оптимизация производительности MongoDB и индексов**
+Экспертный анализ и оптимизация запросов MongoDB, aggregation pipelines и индексов для обеспечения быстрой загрузки дашбордов и эффективного извлечения данных.
+
+📊 **Разработка production дашбордов и алертов**
+Кастомные дашборды Grafana, адаптированные под ваши бизнес-метрики, SLI/SLO, с интеллектуальными правилами алертинга, интегрированными с вашими инструментами управления инцидентами.
+
+🏗️ **Стратегии высокой доступности и резервного копирования для MongoDB**
+Проектирование и внедрение replica sets MongoDB, стратегий шардинга, автоматизированного резервного копирования и процедур disaster recovery.
+
+📈 **Консалтинг и обучение по observability**
+Обучение команды лучшим практикам мониторинга MongoDB, оптимизации запросов и разработке дашбордов Grafana.
+
+**Свяжитесь с нами**: [run-as-daemon.ru](https://run-as-daemon.ru)
+**Email**: contact@run-as-daemon.ru
+**Telegram**: @run_as_daemon
+
+---
+
+## Поддержка / Благодарности
+
+Если этот плагин вам полезен:
+
+- ⭐ **Поставьте звезду** этому репозиторию, чтобы показать вашу поддержку
+- 📢 **Поделитесь** с коллегами, использующими Grafana + MongoDB
+- 💬 **Сообщайте о проблемах** или запрашивайте функции через [GitHub Issues](https://github.com/ranas-mukminov/mongodb-grafana/issues)
+- 💝 **Спонсорство**: Используйте кнопку Sponsor на GitHub или посетите [run-as-daemon.ru/support](https://run-as-daemon.ru/support)
+
+Ваша поддержка помогает поддерживать этот проект и сохранять его совместимость с последними версиями Grafana и MongoDB.
+
+---
+
+## Участие в разработке
+
+Вклады приветствуются! Пожалуйста:
+1. Форкните репозиторий
+2. Создайте ветку для функции
+3. Внесите изменения (сохраняя совместимость с upstream)
+4. Отправьте pull request
+
+Смотрите наши [Руководство по участию](CONTRIBUTING.md) для деталей.
+
+---
+
+## Лицензия
+
+ISC License
+
+Оригинальная работа: James Osgood
+Форк поддерживается: [run-as-daemon.ru](https://run-as-daemon.ru)
+
+---
+
+**Сделано с ❤️ сообществом MongoDB + Grafana и [run-as-daemon.ru](https://run-as-daemon.ru)**
+
diff --git a/SECURITY.md b/SECURITY.md
new file mode 100644
index 0000000..50a2704
--- /dev/null
+++ b/SECURITY.md
@@ -0,0 +1,243 @@
+# Security Policy
+
+## Supported Versions
+
+We provide security updates for the following versions:
+
+| Version | Supported |
+| ------- | ------------------ |
+| 0.8.x | :white_check_mark: |
+| < 0.8 | :x: |
+
+## Security Context
+
+This plugin consists of two components:
+
+1. **Grafana Plugin** (frontend) - Runs in the Grafana UI
+2. **Node.js Proxy Server** (backend) - Intermediary between Grafana and MongoDB
+
+### Important Security Notes
+
+⚠️ **Network Exposure**: By default, this plugin is NOT directly exposed to the internet:
+- The Grafana plugin runs within Grafana's environment
+- The proxy server should only be accessible by your Grafana instance
+- MongoDB should only be accessible by the proxy server
+
+⚠️ **Authentication**:
+- The proxy server does NOT implement its own authentication
+- Authentication is handled by MongoDB connection strings
+- Ensure strong MongoDB authentication is configured
+- Use network segmentation to restrict proxy access
+
+⚠️ **Data Handling**:
+- The proxy translates Grafana queries to MongoDB aggregation queries
+- Query injection is possible if not using properly validated inputs
+- Always use template variables instead of hardcoding values in dashboards
+
+## Reporting a Vulnerability
+
+If you discover a security vulnerability in this project, please help us by responsibly disclosing it.
+
+### How to Report
+
+**DO NOT open a public GitHub issue for security vulnerabilities.**
+
+Instead, please report security issues via one of these methods:
+
+1. **Email**: Send details to `security@run-as-daemon.ru`
+ - Use subject line: `[SECURITY] mongodb-grafana: `
+ - Include detailed description of the vulnerability
+ - Provide steps to reproduce if possible
+
+2. **GitHub Security Advisories**:
+ - Go to https://github.com/ranas-mukminov/mongodb-grafana/security/advisories
+ - Click "Report a vulnerability"
+ - Fill in the details
+
+### What to Include
+
+Please include as much of the following information as possible:
+
+- **Type of vulnerability** (e.g., injection, authentication bypass, etc.)
+- **Component affected** (Grafana plugin, proxy server, configuration)
+- **Versions affected**
+- **Detailed description** of the vulnerability
+- **Steps to reproduce** the issue
+- **Proof of concept** (if available)
+- **Potential impact** and severity assessment
+- **Suggested fix** (if you have one)
+- **Your name/handle** (for acknowledgment, optional)
+
+### Response Timeline
+
+| Timeframe | Action |
+|-----------|--------|
+| 1-2 business days | Initial acknowledgment |
+| 3-5 business days | Severity assessment and triage |
+| 7-14 days | Development of fix (for confirmed vulnerabilities) |
+| 14-30 days | Release of security patch |
+| After patch release | Public disclosure (coordinated with reporter) |
+
+### What to Expect
+
+1. **Acknowledgment**: We'll confirm receipt of your report within 1-2 business days
+2. **Assessment**: We'll evaluate the severity and validity of the report
+3. **Updates**: We'll keep you informed of our progress
+4. **Fix**: We'll develop and test a security patch
+5. **Release**: We'll release the patch and coordinate public disclosure
+6. **Credit**: We'll acknowledge your contribution (if desired)
+
+### Scope
+
+**In Scope:**
+- MongoDB Grafana plugin code (src/, dist/)
+- Node.js proxy server (server/)
+- Configuration handling
+- Authentication and authorization issues
+- Data exposure vulnerabilities
+- Injection vulnerabilities (NoSQL injection, etc.)
+- Denial of service issues
+
+**Out of Scope:**
+- Vulnerabilities in dependencies (report to upstream)
+- Vulnerabilities in Grafana itself (report to Grafana project)
+- Vulnerabilities in MongoDB itself (report to MongoDB)
+- Social engineering attacks
+- Physical attacks
+- Issues in example/demo configurations (examples/ directory)
+
+## Security Best Practices
+
+### For Users
+
+When deploying this plugin in production:
+
+1. **Network Security**:
+ - Run the proxy server in a private network
+ - Use firewall rules to restrict proxy access to Grafana only
+ - Never expose the proxy directly to the internet
+ - Use VPN or SSH tunnels for remote access
+
+2. **Authentication**:
+ - Use strong MongoDB authentication
+ - Create dedicated MongoDB users with minimal required permissions
+ - Use read-only users for Grafana queries
+ - Rotate credentials regularly
+
+3. **MongoDB Connection Strings**:
+ - Never hardcode credentials in dashboards
+ - Use Grafana's secure credential storage
+ - Use environment variables for the proxy configuration
+ - Enable SSL/TLS for MongoDB connections
+
+4. **Query Security**:
+ - Review aggregation queries before deploying dashboards
+ - Use template variables instead of user input in queries
+ - Limit aggregation pipeline complexity
+ - Set query timeouts to prevent resource exhaustion
+
+5. **Updates**:
+ - Keep the plugin updated to the latest version
+ - Subscribe to security advisories
+ - Monitor the GitHub repository for security patches
+
+6. **Monitoring**:
+ - Monitor proxy server logs for suspicious activity
+ - Set up alerts for failed authentication attempts
+ - Track unusual query patterns
+
+### For Developers
+
+If you contribute to this project:
+
+1. **Code Review**:
+ - All code changes require review before merge
+ - Security-sensitive changes require additional scrutiny
+
+2. **Dependencies**:
+ - Keep dependencies up to date
+ - Review dependency security advisories regularly
+ - Use `npm audit` before releases
+
+3. **Input Validation**:
+ - Validate and sanitize all user inputs
+ - Use parameterized queries where possible
+ - Escape special characters properly
+
+4. **Testing**:
+ - Write security tests for new features
+ - Test for common vulnerabilities (OWASP Top 10)
+ - Perform fuzzing on input handlers
+
+## Known Limitations
+
+### Current Security Considerations
+
+1. **Query Injection**: The proxy passes aggregation queries to MongoDB with macro substitution. Malicious dashboard creators could potentially craft harmful queries.
+ - **Mitigation**: Only allow trusted users to create/edit dashboards
+ - **Future**: Query validation and sanitization
+
+2. **Resource Exhaustion**: Complex aggregation queries could consume significant MongoDB resources.
+ - **Mitigation**: Set query timeouts, use MongoDB resource limits
+ - **Future**: Query complexity analysis
+
+3. **Authentication**: The proxy itself doesn't implement authentication.
+ - **Mitigation**: Use network segmentation
+ - **Future**: Optional proxy authentication layer
+
+### Dependency Vulnerabilities (As of 2025-11-20)
+
+**Runtime Dependencies**: ✅ Updated to latest secure versions within compatibility constraints
+- express: 4.21.2 (latest 4.x)
+- body-parser: 1.20.3 (latest 1.x)
+- lodash: 4.17.21 (latest 4.x)
+- moment: 2.30.1 (latest 2.x)
+- mongodb: 3.7.4 (latest 3.x)
+
+**Development Dependencies**: ⚠️ 40 remaining vulnerabilities (dev-only)
+
+The remaining vulnerabilities are in development-only dependencies and **do not affect production runtime**:
+
+- **babel 6.x ecosystem** (30 critical/high): Used only for transpiling ES6 code during build. Not included in production bundles.
+- **mocha 5.x** (high): Used only for running tests during development
+- **jsdom 9.x** (moderate): Used only for test DOM simulation
+
+These dev dependencies cannot be easily upgraded without breaking changes:
+- Babel 6 → 7+ requires complete build configuration rewrite
+- Mocha 5 → 11 may require test syntax changes
+- jsdom 9 → 27 has breaking API changes
+
+**Risk Assessment**: Low - These vulnerabilities only affect development/build environment, not production runtime or deployed code.
+
+**Mitigation**:
+- Run builds in isolated/sandboxed environments
+- Do not process untrusted code during builds
+- Use CI/CD pipelines with restricted permissions
+- Runtime code has no dependency on vulnerable dev packages
+
+## Security Updates
+
+Security updates are released as soon as possible after a vulnerability is confirmed.
+
+- **Critical**: Patch released within 1-7 days
+- **High**: Patch released within 7-14 days
+- **Medium**: Patch released within 14-30 days
+- **Low**: Patch released in next regular version
+
+Subscribe to releases on GitHub to be notified of security updates:
+https://github.com/ranas-mukminov/mongodb-grafana/releases
+
+## Contact
+
+- **Security issues**: security@run-as-daemon.ru
+- **General support**: See [SUPPORT.md](SUPPORT.md)
+- **Commercial security consulting**: [run-as-daemon.ru](https://run-as-daemon.ru)
+
+## Acknowledgments
+
+We thank all security researchers who responsibly disclose vulnerabilities to help keep this project secure.
+
+---
+
+**Last updated**: 2025-11-20
+**Version**: 1.1
diff --git a/SUPPORT.md b/SUPPORT.md
new file mode 100644
index 0000000..6df2edf
--- /dev/null
+++ b/SUPPORT.md
@@ -0,0 +1,114 @@
+# Support
+
+## Community Support
+
+This is an open-source project maintained by the community and [run-as-daemon.ru](https://run-as-daemon.ru).
+
+### Getting Help
+
+**For questions, bugs, and feature requests:**
+
+- 📖 First, check the [README.md](README.md) and [examples/README.md](examples/README.md) documentation
+- 🔍 Search [existing issues](https://github.com/ranas-mukminov/mongodb-grafana/issues) to see if your question has been answered
+- 💬 Open a [new issue](https://github.com/ranas-mukminov/mongodb-grafana/issues/new/choose) if you can't find an answer
+
+**Community channels:**
+
+- GitHub Issues for bug reports and feature requests
+- GitHub Discussions (if enabled) for general questions
+
+### Important Notes
+
+- ⏰ **No guaranteed SLA**: This is a community project. Responses depend on volunteer availability.
+- 🤝 **Best effort**: We'll try to help, but there's no guarantee of response time or resolution.
+- 📚 **Help us help you**: Provide detailed information (see issue templates) to get better assistance.
+
+## Professional Support
+
+Need guaranteed response times, priority support, or consulting services?
+
+### Commercial Support Options
+
+**[run-as-daemon.ru](https://run-as-daemon.ru)** offers professional SRE/DevOps services including:
+
+- ✅ **Priority Support** - Guaranteed response times (4h-24h SLA)
+- ✅ **Bug Fixes & Patches** - Fast-track critical issues
+- ✅ **Custom Development** - Features tailored to your needs
+- ✅ **Consulting & Training** - Expert guidance for your team
+- ✅ **Implementation Services** - Full deployment and configuration
+- ✅ **Performance Optimization** - MongoDB and query tuning
+- ✅ **Production Support** - 24/7 monitoring and incident response
+
+### What's Included in Professional Support
+
+**Standard Support Package:**
+- Email and chat support (business hours)
+- 24-hour response time SLA
+- Monthly support hours (8-40 hours)
+- Access to private knowledge base
+- Regular check-ins and reviews
+
+**Premium Support Package:**
+- 24/7 phone, email, and chat support
+- 4-hour response time SLA
+- Unlimited support hours
+- Dedicated support engineer
+- Proactive monitoring and optimization
+- Quarterly business reviews
+
+**Enterprise Support Package:**
+- Everything in Premium, plus:
+- Named technical account manager
+- Custom SLAs
+- On-site support options
+- Training and workshops
+- Architecture and design reviews
+- Emergency hotfix development
+
+### Services Beyond Support
+
+- **Implementation**: Full setup and deployment of Grafana + MongoDB monitoring
+- **Migration**: Upgrade from older versions or migrate from other solutions
+- **Training**: On-site or remote training for your team
+- **Consulting**: Architecture design, best practices, optimization
+- **Custom Development**: New features, integrations, or modifications
+
+### Contact for Professional Support
+
+- 🌐 **Website**: [run-as-daemon.ru](https://run-as-daemon.ru)
+- 📧 **Email**: contact@run-as-daemon.ru
+- 💬 **Telegram**: @run_as_daemon
+- 📞 **Schedule a call**: [Book a consultation](https://run-as-daemon.ru/consultation)
+
+**Response times for professional support inquiries: 1-2 business days**
+
+## Contributing
+
+Want to help improve this project? See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
+
+Your contributions help make this project better for everyone! 🎉
+
+## Sponsorship
+
+If you or your company benefits from this project, please consider:
+
+- ⭐ Starring the repository
+- 💝 Sponsoring via [GitHub Sponsors](https://github.com/sponsors/ranas-mukminov)
+- ☕ Supporting via [run-as-daemon.ru/support](https://run-as-daemon.ru/support)
+
+Sponsorships help cover:
+- Hosting and infrastructure costs
+- Development and maintenance time
+- Testing across different environments
+- Documentation improvements
+- Community support
+
+## Security Issues
+
+For security-related issues, please see [SECURITY.md](SECURITY.md) and follow the responsible disclosure process.
+
+---
+
+**Thank you for using mongodb-grafana!** 🙏
+
+Maintained by the community and [run-as-daemon.ru](https://run-as-daemon.ru)
diff --git a/dist/README.md b/dist/README.md
index 550ffaf..3f578b3 100644
--- a/dist/README.md
+++ b/dist/README.md
@@ -1,134 +1,237 @@
-# MongoDB datasource for Grafana
+# MongoDB datasource for Grafana (run-as-daemon fork)
-## Features
-Allows MongoDB to be used as a data source for Grafana by providing a proxy to convert the Grafana Data source [API](http://docs.grafana.org/plugins/developing/datasources/) into MongoDB aggregation queries
+**Production-ready MongoDB datasource plugin for Grafana with professional support**
+
+[English] | [Русский](README.ru.md)
+
+> This is a maintained fork of [JamesOsgood/mongodb-grafana](https://github.com/JamesOsgood/mongodb-grafana) with improvements, Russian documentation, and professional SRE/DevOps services from [run-as-daemon.ru](https://run-as-daemon.ru)
+
+---
+
+## What this plugin does
+
+This plugin allows you to use MongoDB as a data source in Grafana. It works by running a Node.js HTTP proxy server that translates Grafana's data source API calls into MongoDB aggregation pipeline queries. This enables you to visualize MongoDB data directly in Grafana dashboards without writing custom code.
+
+**Key capabilities:**
+- Query MongoDB collections using aggregation pipelines
+- Time-series visualizations with automatic date range macros (`$from`, `$to`)
+- Template variables for dynamic dashboards
+- Table panel support for aggregated data
+- Auto-bucketing support with `$bucketAuto` and `$dateBucketCount`
+
+- **Grafana**: version 3.x.x or higher
+- **MongoDB**: version 3.4.x or higher
+- **Node.js**: version 6.10.0 or higher (for running the proxy server)
## Requirements
-* **Grafana** > 3.x.x
-* **MongoDB** > 3.4.x
+- **Grafana**: >= 3.x.x
+- **MongoDB**: >= 3.4.x (aggregation pipeline support required)
+- **Node.js**: >= 6.10.0 (for the proxy server)
+
+---
## Installation
-### Install the Grafana plugin components
+### 1. Install the Grafana plugin
+
+Copy the plugin directory into your Grafana plugins folder:
+
+```bash
+# Default Grafana plugins directory
+cp -r dist /var/lib/grafana/plugins/mongodb-grafana
+
+# Homebrew installation (macOS)
+cp -r dist /usr/local/var/lib/grafana/plugins/mongodb-grafana
+
+# Restart Grafana
+sudo systemctl restart grafana-server # Linux
+brew services restart grafana # macOS
+```
+# Local MongoDB
+mongodb://localhost:27017
+
+### 2. Install and start the MongoDB proxy server
+
+The proxy server runs separately from Grafana and handles the MongoDB connections:
+
+```bash
+# Install dependencies
+npm install
-* Copy the whole mongodb-grafana dir into the Grafana plugins dir ( /usr/local/var/lib/grafana/plugins )
-* Restart the Grafana server. If installed via Homebrew, this will be `brew services restart grafana`
+# Build the plugin
+npm run build
-### Install and Start the MongoDB proxy server
+# Start the proxy server (default port 3333)
+npm run server
+```
-* Open a command prompt in the mongodb-grafana directory
-* Run `npm install` to install the node.js dependencies
-* Run `npm run server` to start the REST API proxy to MongoDB. By default, the server listens on http://localhost:3333
+The server will listen on `http://localhost:3333` by default.
-## Examples
+---
-Create a new data source of type MongoDB as shown below. The MongoDB details are :
+## Quick Start with Docker
-* **MongoDB URL** - `mongodb://rpiread:rpiread@rpi-sensor-data-shard-00-00-ifxxs.mongodb.net:27017,rpi-sensor-data-shard-00-01-ifxxs.mongodb.net:27017,rpi-sensor-data-shard-00-02-ifxxs.mongodb.net:27017/test?ssl=true&replicaSet=rpi-sensor-data-shard-0&authSource=admin`
-* **MongoDB Database** - `rpi`
+For a quick demo or development setup, use Docker Compose:
-
+```bash
+cd examples
+docker-compose up -d
+```
-Then save the data source
+This starts:
+- Grafana on http://localhost:3000 (admin/admin)
+- MongoDB proxy on http://localhost:3333
+- MongoDB instance for testing
-#### Example 1 - Simple aggregate to rename fields
+See [examples/README.md](examples/README.md) for detailed instructions.
-Import the dashboard in `examples\RPI MongoDB - Atlas.json`
+---
-This should show a graph of light sensor values from a Raspberry PI with an [EnviroPHAT](https://thepihut.com/products/enviro-phat) board feeding readings every minute into a MongoDB Atlas database.
+## Basic Usage
-
+### Configure the data source in Grafana
-Clicking on the title of the graph allows you to see the aggregation query being run against the 'RPI Atlas' data source
+1. In Grafana, go to **Configuration → Data Sources**
+2. Click **Add data source**
+3. Select **MongoDB**
+4. Configure:
+ - **Name**: Choose a descriptive name
+ - **URL**: `http://localhost:3333` (the proxy server)
+ - **MongoDB URL**: Your MongoDB connection string
+ Example: `mongodb://user:pass@host:27017/database?authSource=admin`
+ - **MongoDB Database**: The database name to query
+5. Click **Save & Test**
-
+### Write your first query
-The query here is
+In a dashboard panel, use MongoDB aggregation syntax:
```javascript
-db.sensor_value.aggregate ( [
-{ "$match" : { "sensor_type" : "$sensor", "host_name" : "$host", "ts" : { "$gte" : "$from", "$lte" : "$to" } } },
- {"$sort" : {"ts" : 1}},
- {"$project" : { "name" : "value", "value" : "$sensor_value", "ts" : "$ts", "_id" : 0} } ])
- ```
+db.collection_name.aggregate([
+ { "$match": { "ts": { "$gte": "$from", "$lte": "$to" } } },
+ { "$sort": { "ts": 1 } },
+ { "$project": {
+ "name": "series_name",
+ "value": "$field_name",
+ "ts": "$timestamp_field",
+ "_id": 0
+ }}
+])
+```
- The API is expecting back documents with the following fields
+**Required fields in output:**
+- `name` - Series name (displayed in legend)
+- `value` - Numeric value for the data point
+- `ts` - Timestamp as a BSON date
- * `name` - Name of the series ( will be displayed on the graph)
- * `value` - The float value of the point
- * `ts` - The time of the point as a BSON date
+**Macros:**
+- `$from`, `$to` - Automatically replaced with dashboard time range (as BSON dates)
+- `$dateBucketCount` - Number of buckets for time-series aggregation
+- Template variables like `$variableName` are substituted from Grafana variables
- These documents are then converted into the [Grafana API](http://docs.grafana.org/plugins/developing/datasources/)
+### Sample dashboards
-`$from` and `$to` are expanded by the plugin as BSON dates based on the range settings on the UI.
+Check the [examples/](examples/) directory for:
+- `RPI MongoDB - Atlas.json` - Simple time-series dashboard
+- `RPI MongoDB Bucket - Atlas.json` - Using `$bucketAuto` for aggregation
+- `Sensor Value Counts - Atlas.json` - Table panel example
-`$sensor` and `$host` are template variables that are filled in by Grafana based on the drop down. The sample template queries are shown below. They expect documents to be returned with a single `_id` field.
+---
+## Limitations and Notes
-
+- **Aggregation only**: This plugin uses MongoDB's aggregation framework. Direct find queries are not supported.
+- **Time-series format**: Output documents must have `name`, `value`, and `ts` fields for graph panels.
+- **Table panels**: Use `_id: 0` projection and return `name`, `value`, `ts` fields.
+- **Authentication**: Ensure the MongoDB user has read permissions on queried collections.
+- **Network**: The proxy server must have network access to MongoDB and be reachable by Grafana.
-#### Example 2 - Using $bucketAuto to push data point aggregation to the server
+---
-Grafana tells the backend server the date range along with the size of the buckets that should be used to calculate points. Therefore it's possible to use the MongoDB aggregation operator [$bucketAuto](https://docs.mongodb.com/manual/reference/operator/aggregation/bucketAuto/) to automatically bucket the data points into display points. To support this the backend provides the `$dateBucketCount` macro so that queries such as the one below can be written
+## Professional SRE/DevOps Services
-```javascript
-db.sensor_value.aggregate( [
-{ "$match" : { "sensor_type" : "$sensor", "host_name" : "$host" , "ts" : { "$gte" : "$from", "$lt" : "$to" }}},
-{ "$bucketAuto" : { "groupBy" : "$ts",
- "buckets" : "$dateBucketCount",
- "output" : { "maxValue" : { "$max" : "$sensor_value" } } } },
-{ "$project" : { "name" : "value", "value" : "$maxValue", "ts" : "$_id.min", "_id" : 0 } } ] )
-```
-Note that ```_id``` field of the bucketAuto output contains the start and end of the bucket so we can use that as the ```ts``` value
+This fork is maintained by **[run-as-daemon.ru](https://run-as-daemon.ru)** – a team of SRE and DevOps engineers specializing in monitoring, observability, and database operations.
-The dashboard in `examples\RPI MongoDB Bucket - Atlas.json` shows this.
+### Available Services
-#### Example 3 - Using a Tabel Panel
+🔧 **MongoDB + Grafana Monitoring Stack Design & Deployment**
+Complete setup of production-grade monitoring infrastructure with MongoDB as a data source, including HA configuration, security hardening, and custom dashboards.
-
+⚡ **MongoDB Performance Tuning & Index Optimization**
+Expert analysis and optimization of MongoDB queries, aggregation pipelines, and indexes to ensure fast dashboard load times and efficient data retrieval.
-Table panels are now supported with queries of the form
+📊 **Production Dashboard & Alert Development**
+Custom Grafana dashboards tailored to your business metrics, SLIs/SLOs, with intelligent alerting rules integrated with your incident management tools.
-```javascript
-db.sensor_value.aggregate(
-[
- { "$match" : { "ts" : { "$gte" : "$from", "$lt" : "$to" }}},
- { "$group": { "_id": { "sensor_name" : "$sensor_name", "sensor_type" : "$sensor_type" }, "cnt" : { "$sum" : 1 }, "ts" : { "$max" : "$ts" } } },
- { "$project": { "name" : { "$concat" : ["$_id.sensor_name",":","$_id.sensor_type" ]}, "value" : "$cnt", "ts" : 1, "_id" : 0} }
-])
-```
+🏗️ **High Availability & Backup Strategies for MongoDB**
+Design and implementation of MongoDB replica sets, sharding strategies, automated backups, and disaster recovery procedures.
+
+📈 **Observability Consulting & Training**
+Team training on MongoDB monitoring best practices, query optimization, and Grafana dashboard development.
+
+**Contact us**: [run-as-daemon.ru](https://run-as-daemon.ru)
+**Email**: contact@run-as-daemon.ru
+**Telegram**: @run_as_daemon
+
+---
+
+## Support / Thanks
+
+If you find this plugin useful:
+
+- ⭐ **Star this repository** to show your support
+- 📢 **Share it** with colleagues who use Grafana + MongoDB
+- 💬 **Report issues** or request features via [GitHub Issues](https://github.com/ranas-mukminov/mongodb-grafana/issues)
+- 💝 **Sponsor**: Use the Sponsor button on GitHub or visit [run-as-daemon.ru/support](https://run-as-daemon.ru/support)
+
+Your support helps maintain this project and keep it compatible with the latest Grafana and MongoDB versions.
+
+---
+
+## Contributing
+
+Contributions are welcome! Please:
+1. Fork the repository
+2. Create a feature branch
+3. Make your changes (keeping compatibility with upstream)
+4. Submit a pull request
-The dashboard in `examples\Sensor Values Count - Atlas.json` shows this.
+See our [Contributing Guidelines](CONTRIBUTING.md) for more details.
-## Running the proxy as a service on a Mac
+---
-* Install [forever-mac](https://www.npmjs.com/package/forever-mac)
-* Copy server/mongodb-grafana-proxy.plist to ~/Library/LaunchAgents
-* run `launchctl load mongodb-grafana-proxy` from ~/Library/LaunchAgents
+## License
-This launch ctrl plist runs the node script via forever. To check it's running, use `forever list`. Logs go into /usr/local/var/lib/grafana/plugins/mongodb-grafana/dist/server
+ISC License
-## Development
+Original work by James Osgood
+Fork maintained by [run-as-daemon.ru](https://run-as-daemon.ru)
-To run grafana against a dev version of the plugin on a mac using grafana installed via Homebrew
-
-* Stop the grafana service `brew services stop grafana`
-* Open a command prompt in /debugging
-* Run ./start_grafana.sh
-* Alter code
-* npm run build to build the UI
-* Developer tools -> empty cache and hard reload
+---
-Note
+**Made with ❤️ by the MongoDB + Grafana community and [run-as-daemon.ru](https://run-as-daemon.ru)**
-* Homebrew grafana versions in /usr/local/Cellar
+Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
+---
+## License
+ISC License
+Original work by James Osgood
+Fork maintained by [run-as-daemon.ru](https://run-as-daemon.ru)
+---
+## Links
+- [Original Repository](https://github.com/JamesOsgood/mongodb-grafana)
+- [Grafana Documentation](https://grafana.com/docs/)
+- [MongoDB Aggregation Pipeline](https://docs.mongodb.com/manual/core/aggregation-pipeline/)
+- [run-as-daemon Services](https://run-as-daemon.ru)
+---
+**Made with ❤️ by the MongoDB-Grafana community and [run-as-daemon.ru](https://run-as-daemon.ru)**
diff --git a/dist/test/datasource.js.map b/dist/test/datasource.js.map
index ee5c17b..77a42e2 100644
--- a/dist/test/datasource.js.map
+++ b/dist/test/datasource.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../src/datasource.js"],"names":["GenericDatasource","instanceSettings","$q","backendSrv","templateSrv","type","url","name","db","jsonData","mongodb_url","mongodb_db","q","withCredentials","headers","basicAuth","length","options","query","buildQueryParameters","targets","filter","t","hide","when","data","doRequest","method","then","response","status","message","title","display_status","replace","annotation","annotationQuery","range","datasource","enable","iconColor","rangeRaw","$$status","result","$$config","config","interpolated","target","mapToTextValue","map","d","i","text","value","isObject","datasourceRequest","scopedVars","refId"],"mappings":"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","file":"datasource.js","sourcesContent":["import _ from \"lodash\";\n\nexport class GenericDatasource {\n\n constructor(instanceSettings, $q, backendSrv, templateSrv) {\n this.type = instanceSettings.type;\n this.url = instanceSettings.url;\n this.name = instanceSettings.name;\n this.db = { 'url' : instanceSettings.jsonData.mongodb_url, 'db' : instanceSettings.jsonData.mongodb_db }\n this.q = $q;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n this.withCredentials = instanceSettings.withCredentials;\n this.headers = {'Content-Type': 'application/json'};\n if (typeof instanceSettings.basicAuth === 'string' && instanceSettings.basicAuth.length > 0) {\n this.headers['Authorization'] = instanceSettings.basicAuth;\n }\n }\n\n query(options) {\n var query = this.buildQueryParameters(options);\n query.targets = query.targets.filter(t => !t.hide);\n query.db = this.db\n\n if (query.targets.length <= 0) {\n return this.q.when({data: []});\n }\n\n return this.doRequest({\n url: this.url + '/query',\n data: query,\n method: 'POST'\n });\n }\n\n testDatasource() {\n return this.doRequest({\n url: this.url + '/',\n data : { db : this.db },\n method: 'POST',\n }).then(response => {\n if (response.status === 200) {\n return { status: response.data.status, message: response.data.message, title: response.data.display_status };\n }\n });\n }\n\n annotationQuery(options) {\n var query = this.templateSrv.replace(options.annotation.query, {}, 'glob');\n var annotationQuery = {\n range: options.range,\n annotation: {\n name: options.annotation.name,\n datasource: options.annotation.datasource,\n enable: options.annotation.enable,\n iconColor: options.annotation.iconColor,\n query: query\n },\n rangeRaw: options.rangeRaw\n };\n\n return this.doRequest({\n url: this.url + '/annotations',\n method: 'POST',\n data: annotationQuery\n }).then(result => {\n response.data.$$status = result.status;\n response.data.$$config = result.config;\n return result.data;\n });\n }\n\n metricFindQuery(query) {\n var interpolated = {\n target: this.templateSrv.replace(query, null, '')\n };\n interpolated.db = this.db\n\n return this.doRequest({\n url: this.url + '/search',\n data: interpolated,\n method: 'POST',\n }).then(this.mapToTextValue);\n }\n\n mapToTextValue(result) {\n return _.map(result.data, (d, i) => {\n if (d && d.text && d.value) {\n return { text: d.text, value: d.value };\n } else if (_.isObject(d)) {\n return { text: d, value: i};\n }\n return { text: d, value: d };\n });\n }\n\n doRequest(options) {\n options.withCredentials = this.withCredentials;\n options.headers = this.headers;\n\n return this.backendSrv.datasourceRequest(options);\n }\n\n buildQueryParameters(options) {\n //remove place holder targets\n options.targets = _.filter(options.targets, target => {\n return target.target !== 'select metric';\n });\n\n var targets = _.map(options.targets, target => {\n return {\n target: this.templateSrv.replace(target.target, options.scopedVars, ''),\n refId: target.refId,\n hide: target.hide,\n type: target.type || 'timeserie' \n };\n });\n\n options.targets = targets;\n\n return options;\n }\n}\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../src/datasource.js"],"names":["GenericDatasource","instanceSettings","$q","backendSrv","templateSrv","type","url","name","db","jsonData","mongodb_url","mongodb_db","q","withCredentials","headers","basicAuth","length","options","query","buildQueryParameters","targets","filter","t","hide","when","data","doRequest","method","then","response","status","message","title","display_status","replace","annotation","annotationQuery","range","datasource","enable","iconColor","rangeRaw","$$status","result","$$config","config","interpolated","target","mapToTextValue","_","map","d","i","text","value","isObject","datasourceRequest","scopedVars","refId"],"mappings":"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","file":"datasource.js","sourcesContent":["import _ from \"lodash\";\n\nexport class GenericDatasource {\n\n constructor(instanceSettings, $q, backendSrv, templateSrv) {\n this.type = instanceSettings.type;\n this.url = instanceSettings.url;\n this.name = instanceSettings.name;\n this.db = { 'url' : instanceSettings.jsonData.mongodb_url, 'db' : instanceSettings.jsonData.mongodb_db }\n this.q = $q;\n this.backendSrv = backendSrv;\n this.templateSrv = templateSrv;\n this.withCredentials = instanceSettings.withCredentials;\n this.headers = {'Content-Type': 'application/json'};\n if (typeof instanceSettings.basicAuth === 'string' && instanceSettings.basicAuth.length > 0) {\n this.headers['Authorization'] = instanceSettings.basicAuth;\n }\n }\n\n query(options) {\n var query = this.buildQueryParameters(options);\n query.targets = query.targets.filter(t => !t.hide);\n query.db = this.db\n\n if (query.targets.length <= 0) {\n return this.q.when({data: []});\n }\n\n return this.doRequest({\n url: this.url + '/query',\n data: query,\n method: 'POST'\n });\n }\n\n testDatasource() {\n return this.doRequest({\n url: this.url + '/',\n data : { db : this.db },\n method: 'POST',\n }).then(response => {\n if (response.status === 200) {\n return { status: response.data.status, message: response.data.message, title: response.data.display_status };\n }\n });\n }\n\n annotationQuery(options) {\n var query = this.templateSrv.replace(options.annotation.query, {}, 'glob');\n var annotationQuery = {\n range: options.range,\n annotation: {\n name: options.annotation.name,\n datasource: options.annotation.datasource,\n enable: options.annotation.enable,\n iconColor: options.annotation.iconColor,\n query: query\n },\n rangeRaw: options.rangeRaw\n };\n\n return this.doRequest({\n url: this.url + '/annotations',\n method: 'POST',\n data: annotationQuery\n }).then(result => {\n response.data.$$status = result.status;\n response.data.$$config = result.config;\n return result.data;\n });\n }\n\n metricFindQuery(query) {\n var interpolated = {\n target: this.templateSrv.replace(query, null, '')\n };\n interpolated.db = this.db\n\n return this.doRequest({\n url: this.url + '/search',\n data: interpolated,\n method: 'POST',\n }).then(this.mapToTextValue);\n }\n\n mapToTextValue(result) {\n return _.map(result.data, (d, i) => {\n if (d && d.text && d.value) {\n return { text: d.text, value: d.value };\n } else if (_.isObject(d)) {\n return { text: d, value: i};\n }\n return { text: d, value: d };\n });\n }\n\n doRequest(options) {\n options.withCredentials = this.withCredentials;\n options.headers = this.headers;\n\n return this.backendSrv.datasourceRequest(options);\n }\n\n buildQueryParameters(options) {\n //remove place holder targets\n options.targets = _.filter(options.targets, target => {\n return target.target !== 'select metric';\n });\n\n var targets = _.map(options.targets, target => {\n return {\n target: this.templateSrv.replace(target.target, options.scopedVars, ''),\n refId: target.refId,\n hide: target.hide,\n type: target.type || 'timeserie' \n };\n });\n\n options.targets = targets;\n\n return options;\n }\n}\n"]}
\ No newline at end of file
diff --git a/dist/test/module.js.map b/dist/test/module.js.map
index b737a5a..ba9bfc0 100644
--- a/dist/test/module.js.map
+++ b/dist/test/module.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../src/module.js"],"names":["GenericConfigCtrl","templateUrl","GenericQueryOptionsCtrl","GenericAnnotationsQueryCtrl","Datasource","QueryCtrl","ConfigCtrl","QueryOptionsCtrl","AnnotationsQueryCtrl"],"mappings":";;;;;;;AAAA;;AACA;;;;IAEMA,iB;;;;AACNA,kBAAkBC,WAAlB,GAAgC,sBAAhC;;IAEMC,uB;;;;AACNA,wBAAwBD,WAAxB,GAAsC,6BAAtC;;IAEME,2B;;;;AACNA,4BAA4BF,WAA5B,GAA0C,kCAA1C;;QAGuBG,U;QACSC,S;QACTC,U,GAArBN,iB;QAC2BO,gB,GAA3BL,uB;QAC+BM,oB,GAA/BL,2B","file":"module.js","sourcesContent":["import {GenericDatasource} from './datasource';\nimport {GenericDatasourceQueryCtrl} from './query_ctrl';\n\nclass GenericConfigCtrl {}\nGenericConfigCtrl.templateUrl = 'partials/config.html';\n\nclass GenericQueryOptionsCtrl {}\nGenericQueryOptionsCtrl.templateUrl = 'partials/query.options.html';\n\nclass GenericAnnotationsQueryCtrl {}\nGenericAnnotationsQueryCtrl.templateUrl = 'partials/annotations.editor.html'\n\nexport {\n GenericDatasource as Datasource,\n GenericDatasourceQueryCtrl as QueryCtrl,\n GenericConfigCtrl as ConfigCtrl,\n GenericQueryOptionsCtrl as QueryOptionsCtrl,\n GenericAnnotationsQueryCtrl as AnnotationsQueryCtrl\n};\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../src/module.js"],"names":["GenericConfigCtrl","templateUrl","GenericQueryOptionsCtrl","GenericAnnotationsQueryCtrl","Datasource","GenericDatasource","QueryCtrl","GenericDatasourceQueryCtrl","ConfigCtrl","QueryOptionsCtrl","AnnotationsQueryCtrl"],"mappings":";;;;;;;AAAA;;AACA;;;;IAEMA,iB;;;;AACNA,kBAAkBC,WAAlB,GAAgC,sBAAhC;;IAEMC,uB;;;;AACNA,wBAAwBD,WAAxB,GAAsC,6BAAtC;;IAEME,2B;;;;AACNA,4BAA4BF,WAA5B,GAA0C,kCAA1C;;QAGuBG,U,GAArBC,6B;QAC8BC,S,GAA9BC,sC;QACqBC,U,GAArBR,iB;QAC2BS,gB,GAA3BP,uB;QAC+BQ,oB,GAA/BP,2B","file":"module.js","sourcesContent":["import {GenericDatasource} from './datasource';\nimport {GenericDatasourceQueryCtrl} from './query_ctrl';\n\nclass GenericConfigCtrl {}\nGenericConfigCtrl.templateUrl = 'partials/config.html';\n\nclass GenericQueryOptionsCtrl {}\nGenericQueryOptionsCtrl.templateUrl = 'partials/query.options.html';\n\nclass GenericAnnotationsQueryCtrl {}\nGenericAnnotationsQueryCtrl.templateUrl = 'partials/annotations.editor.html'\n\nexport {\n GenericDatasource as Datasource,\n GenericDatasourceQueryCtrl as QueryCtrl,\n GenericConfigCtrl as ConfigCtrl,\n GenericQueryOptionsCtrl as QueryOptionsCtrl,\n GenericAnnotationsQueryCtrl as AnnotationsQueryCtrl\n};\n"]}
\ No newline at end of file
diff --git a/dist/test/query_ctrl.js.map b/dist/test/query_ctrl.js.map
index 98cdef4..a6af43c 100644
--- a/dist/test/query_ctrl.js.map
+++ b/dist/test/query_ctrl.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../src/query_ctrl.js"],"names":["GenericDatasourceQueryCtrl","$scope","$injector","scope","target","type","rawQuery","query","datasource","metricFindQuery","panelCtrl","refresh","templateUrl"],"mappings":";;;;;;;;;AAAA;;AACA;;;;;;;;IAEaA,0B,WAAAA,0B;;;AAEX,sCAAYC,MAAZ,EAAoBC,SAApB,EAAgC;AAAA;;AAAA,wJACxBD,MADwB,EAChBC,SADgB;;AAG9B,UAAKC,KAAL,GAAaF,MAAb;AACA,UAAKG,MAAL,CAAYA,MAAZ,GAAqB,MAAKA,MAAL,CAAYA,MAAZ,IAAsB,eAA3C;AACA,UAAKA,MAAL,CAAYC,IAAZ,GAAmB,MAAKD,MAAL,CAAYC,IAAZ,IAAoB,WAAvC;AACA,UAAKD,MAAL,CAAYE,QAAZ,GAAuB,IAAvB;AAN8B;AAO/B;;;;+BAEUC,K,EAAO;AAChB,aAAO,KAAKC,UAAL,CAAgBC,eAAhB,CAAgCF,SAAS,EAAzC,CAAP;AACD;;;uCAEkB;AACjB,WAAKH,MAAL,CAAYE,QAAZ,GAAuB,CAAC,KAAKF,MAAL,CAAYE,QAApC;AACD;;;uCAEkB;AACjB,WAAKI,SAAL,CAAeC,OAAf,GADiB,CACS;AAC3B;;;;;;AAGHX,2BAA2BY,WAA3B,GAAyC,4BAAzC","file":"query_ctrl.js","sourcesContent":["import {QueryCtrl} from 'app/plugins/sdk';\nimport './css/query-editor.css!'\n\nexport class GenericDatasourceQueryCtrl extends QueryCtrl {\n\n constructor($scope, $injector) {\n super($scope, $injector);\n\n this.scope = $scope;\n this.target.target = this.target.target || 'select metric';\n this.target.type = this.target.type || 'timeserie';\n this.target.rawQuery = true;\n }\n\n getOptions(query) {\n return this.datasource.metricFindQuery(query || '');\n }\n\n toggleEditorMode() {\n this.target.rawQuery = !this.target.rawQuery;\n }\n\n onChangeInternal() {\n this.panelCtrl.refresh(); // Asks the panel to refresh data.\n }\n}\n\nGenericDatasourceQueryCtrl.templateUrl = 'partials/query.editor.html';\n\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../src/query_ctrl.js"],"names":["GenericDatasourceQueryCtrl","$scope","$injector","scope","target","type","rawQuery","query","datasource","metricFindQuery","panelCtrl","refresh","QueryCtrl","templateUrl"],"mappings":";;;;;;;;;AAAA;;AACA;;;;;;;;IAEaA,0B,WAAAA,0B;;;AAEX,sCAAYC,MAAZ,EAAoBC,SAApB,EAAgC;AAAA;;AAAA,wJACxBD,MADwB,EAChBC,SADgB;;AAG9B,UAAKC,KAAL,GAAaF,MAAb;AACA,UAAKG,MAAL,CAAYA,MAAZ,GAAqB,MAAKA,MAAL,CAAYA,MAAZ,IAAsB,eAA3C;AACA,UAAKA,MAAL,CAAYC,IAAZ,GAAmB,MAAKD,MAAL,CAAYC,IAAZ,IAAoB,WAAvC;AACA,UAAKD,MAAL,CAAYE,QAAZ,GAAuB,IAAvB;AAN8B;AAO/B;;;;+BAEUC,K,EAAO;AAChB,aAAO,KAAKC,UAAL,CAAgBC,eAAhB,CAAgCF,SAAS,EAAzC,CAAP;AACD;;;uCAEkB;AACjB,WAAKH,MAAL,CAAYE,QAAZ,GAAuB,CAAC,KAAKF,MAAL,CAAYE,QAApC;AACD;;;uCAEkB;AACjB,WAAKI,SAAL,CAAeC,OAAf,GADiB,CACS;AAC3B;;;;EArB6CC,c;;AAwBhDZ,2BAA2Ba,WAA3B,GAAyC,4BAAzC","file":"query_ctrl.js","sourcesContent":["import {QueryCtrl} from 'app/plugins/sdk';\nimport './css/query-editor.css!'\n\nexport class GenericDatasourceQueryCtrl extends QueryCtrl {\n\n constructor($scope, $injector) {\n super($scope, $injector);\n\n this.scope = $scope;\n this.target.target = this.target.target || 'select metric';\n this.target.type = this.target.type || 'timeserie';\n this.target.rawQuery = true;\n }\n\n getOptions(query) {\n return this.datasource.metricFindQuery(query || '');\n }\n\n toggleEditorMode() {\n this.target.rawQuery = !this.target.rawQuery;\n }\n\n onChangeInternal() {\n this.panelCtrl.refresh(); // Asks the panel to refresh data.\n }\n}\n\nGenericDatasourceQueryCtrl.templateUrl = 'partials/query.editor.html';\n\n"]}
\ No newline at end of file
diff --git a/dist/test/spec/datasource_spec.js.map b/dist/test/spec/datasource_spec.js.map
index 90ffe59..0263e5e 100644
--- a/dist/test/spec/datasource_spec.js.map
+++ b/dist/test/spec/datasource_spec.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../../spec/datasource_spec.js"],"names":["describe","ctx","beforeEach","$q","backendSrv","templateSrv","jsonData","mongodb_url","mongodb_db","ds","it","done","query","targets","then","result","expect","data","to","have","length","datasourceRequest","request","when","_request","target","datapoints","replace","db","url","equal","series","metricFindQuery","text","value","mapToTextValue","a","b"],"mappings":";;AAAA;;AACA;;;;;;AAEAA,SAAS,mBAAT,EAA8B,YAAW;AACrC,QAAIC,MAAM,EAAV;;AAEAC,eAAW,YAAW;AAClBD,YAAIE,EAAJ;AACAF,YAAIG,UAAJ,GAAiB,EAAjB;AACAH,YAAII,WAAJ,GAAkB,EAAlB;AACA,YAAIC,WAAW,EAAEC,aAAc,2BAAhB,EAA6CC,YAAa,SAA1D,EAAf;AACAP,YAAIQ,EAAJ,GAAS,uBAAe,EAACH,UAAWA,QAAZ,EAAf,EAAsCL,IAAIE,EAA1C,EAA8CF,IAAIG,UAAlD,EAA8DH,IAAII,WAAlE,CAAT;AACH,KAND;;AAQAK,OAAG,sDAAH,EAA2D,UAASC,IAAT,EAAe;AACtEV,YAAIQ,EAAJ,CAAOG,KAAP,CAAa,EAACC,SAAS,EAAV,EAAb,EAA4BC,IAA5B,CAAiC,UAASC,MAAT,EAAiB;AAC9CC,mBAAOD,OAAOE,IAAd,EAAoBC,EAApB,CAAuBC,IAAvB,CAA4BC,MAA5B,CAAmC,CAAnC;AACAT;AACH,SAHD;AAIH,KALD;;AAOAD,OAAG,uDAAH,EAA4D,UAASC,IAAT,EAAe;AACvEV,YAAIG,UAAJ,CAAeiB,iBAAf,GAAmC,UAASC,OAAT,EAAkB;AACjD,mBAAOrB,IAAIE,EAAJ,CAAOoB,IAAP,CAAY;AACfC,0BAAUF,OADK;AAEfL,sBAAM,CACF;AACIQ,4BAAQ,GADZ;AAEIC,gCAAY,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP;AAFhB,iBADE;AAFS,aAAZ,CAAP;AASH,SAVD;;AAYAzB,YAAII,WAAJ,CAAgBsB,OAAhB,GAA0B,UAASV,IAAT,EAAe;AACvC,mBAAOA,IAAP;AACD,SAFD;;AAIAhB,YAAIQ,EAAJ,CAAOG,KAAP,CAAa,EAACC,SAAS,CAAC,MAAD,CAAV,EAAb,EAAkCC,IAAlC,CAAuC,UAASC,MAAT,EAAiB;AACpDC,mBAAOD,OAAOS,QAAP,CAAgBP,IAAhB,CAAqBJ,OAA5B,EAAqCK,EAArC,CAAwCC,IAAxC,CAA6CC,MAA7C,CAAoD,CAApD;AACAJ,mBAAOD,OAAOS,QAAP,CAAgBP,IAAhB,CAAqBW,EAArB,CAAwBC,GAA/B,EAAoCX,EAApC,CAAuCY,KAAvC,CAA6C,2BAA7C;AACAd,mBAAOD,OAAOS,QAAP,CAAgBP,IAAhB,CAAqBW,EAArB,CAAwBA,EAA/B,EAAmCV,EAAnC,CAAsCY,KAAtC,CAA4C,SAA5C;;AAEA,gBAAIC,SAAShB,OAAOE,IAAP,CAAY,CAAZ,CAAb;AACAD,mBAAOe,OAAON,MAAd,EAAsBP,EAAtB,CAAyBY,KAAzB,CAA+B,GAA/B;AACAd,mBAAOe,OAAOL,UAAd,EAA0BR,EAA1B,CAA6BC,IAA7B,CAAkCC,MAAlC,CAAyC,CAAzC;AACAT;AACH,SATD;AAUH,KA3BD;;AA6BAD,OAAI,wDAAJ,EAA8D,UAASC,IAAT,EAAe;AACzEV,YAAIG,UAAJ,CAAeiB,iBAAf,GAAmC,UAASC,OAAT,EAAkB;AACjD,mBAAOrB,IAAIE,EAAJ,CAAOoB,IAAP,CAAY;AACfC,0BAAUF,OADK;AAEfL,sBAAM,CACF,UADE,EAEF,UAFE,EAGF,UAHE;AAFS,aAAZ,CAAP;AAQH,SATD;;AAWAhB,YAAII,WAAJ,CAAgBsB,OAAhB,GAA0B,UAASV,IAAT,EAAe;AACrC,mBAAOA,IAAP;AACH,SAFD;;AAIAhB,YAAIQ,EAAJ,CAAOuB,eAAP,CAAuB,EAACP,QAAQ,IAAT,EAAvB,EAAuCX,IAAvC,CAA4C,UAASC,MAAT,EAAiB;AACzDC,mBAAOD,MAAP,EAAeG,EAAf,CAAkBC,IAAlB,CAAuBC,MAAvB,CAA8B,CAA9B;AACAJ,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAnB;AACH,SATD;AAUH,KA1BD;;AA4BAD,OAAI,8DAAJ,EAAoE,UAASC,IAAT,EAAe;AAC/EV,YAAIG,UAAJ,CAAeiB,iBAAf,GAAmC,UAASC,OAAT,EAAkB;AACjD,gBAAIG,SAASH,QAAQL,IAAR,CAAaQ,MAA1B;AACA,gBAAIV,SAAS,CAACU,SAAS,IAAV,EAAgBA,SAAS,IAAzB,EAA+BA,SAAS,IAAxC,CAAb;;AAEA,mBAAOxB,IAAIE,EAAJ,CAAOoB,IAAP,CAAY;AACfC,0BAAUF,OADK;AAEfL,sBAAMF;AAFS,aAAZ,CAAP;AAIH,SARD;;AAUAd,YAAII,WAAJ,CAAgBsB,OAAhB,GAA0B,UAASV,IAAT,EAAe;AACrC,mBAAOA,IAAP;AACH,SAFD;;AAIAhB,YAAIQ,EAAJ,CAAOuB,eAAP,CAAuB,QAAvB,EAAiClB,IAAjC,CAAsC,UAASC,MAAT,EAAiB;AACnDC,mBAAOD,MAAP,EAAeG,EAAf,CAAkBC,IAAlB,CAAuBC,MAAvB,CAA8B,CAA9B;AACAJ,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAnB;AACH,SATD;AAUH,KAzBD;;AA2BAD,OAAI,qEAAJ,EAA2E,UAASC,IAAT,EAAe;AACtFV,YAAIG,UAAJ,CAAeiB,iBAAf,GAAmC,UAASC,OAAT,EAAkB;AACjD,mBAAOrB,IAAIE,EAAJ,CAAOoB,IAAP,CAAY;AACfC,0BAAUF,OADK;AAEfL,sBAAM,CACF,UADE,EAEF,UAFE,EAGF,UAHE;AAFS,aAAZ,CAAP;AAQH,SATD;;AAWAhB,YAAII,WAAJ,CAAgBsB,OAAhB,GAA0B,UAASV,IAAT,EAAe;AACrC,mBAAOA,IAAP;AACH,SAFD;;AAIAhB,YAAIQ,EAAJ,CAAOuB,eAAP,CAAuB,EAAvB,EAA2BlB,IAA3B,CAAgC,UAASC,MAAT,EAAiB;AAC7CC,mBAAOD,MAAP,EAAeG,EAAf,CAAkBC,IAAlB,CAAuBC,MAAvB,CAA8B,CAA9B;AACAJ,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAnB;AACH,SATD;AAUH,KA1BD;;AA4BAD,OAAI,oEAAJ,EAA0E,UAASC,IAAT,EAAe;AACrFV,YAAIG,UAAJ,CAAeiB,iBAAf,GAAmC,UAASC,OAAT,EAAkB;AACjD,mBAAOrB,IAAIE,EAAJ,CAAOoB,IAAP,CAAY;AACfC,0BAAUF,OADK;AAEfL,sBAAM,CACF,UADE,EAEF,UAFE,EAGF,UAHE;AAFS,aAAZ,CAAP;AAQH,SATD;;AAWAhB,YAAII,WAAJ,CAAgBsB,OAAhB,GAA0B,UAASV,IAAT,EAAe;AACrC,mBAAOA,IAAP;AACH,SAFD;;AAIAhB,YAAIQ,EAAJ,CAAOuB,eAAP,GAAyBlB,IAAzB,CAA8B,UAASC,MAAT,EAAiB;AAC3CC,mBAAOD,MAAP,EAAeG,EAAf,CAAkBC,IAAlB,CAAuBC,MAAvB,CAA8B,CAA9B;AACAJ,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAnB;AACH,SATD;AAUH,KA1BD;;AA4BAD,OAAI,oEAAJ,EAA0E,UAASC,IAAT,EAAe;AACrFV,YAAIG,UAAJ,CAAeiB,iBAAf,GAAmC,UAASC,OAAT,EAAkB;AACjD,gBAAIG,SAASH,QAAQL,IAAR,CAAaQ,MAA1B;AACA,gBAAIV,SAAS,CAACU,SAAS,IAAV,EAAgBA,SAAS,IAAzB,EAA+BA,SAAS,IAAxC,CAAb;;AAEA,mBAAOxB,IAAIE,EAAJ,CAAOoB,IAAP,CAAY;AACfC,0BAAUF,OADK;AAEfL,sBAAMF;AAFS,aAAZ,CAAP;AAIH,SARD;;AAUAd,YAAII,WAAJ,CAAgBsB,OAAhB,GAA0B,UAASV,IAAT,EAAe;AACrC,mBAAOA,IAAP;AACH,SAFD;;AAIAhB,YAAIQ,EAAJ,CAAOuB,eAAP,CAAuB,QAAvB,EAAiClB,IAAjC,CAAsC,UAASC,MAAT,EAAiB;AACnDC,mBAAOD,MAAP,EAAeG,EAAf,CAAkBC,IAAlB,CAAuBC,MAAvB,CAA8B,CAA9B;AACAJ,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAd,mBAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,UAAhC;AACAd,mBAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,UAAjC;AACAnB;AACH,SATD;AAUH,KAzBD;;AA2BAD,OAAI,yCAAJ,EAA+C,UAASC,IAAT,EAAe;AAC1D,YAAII,SAASd,IAAIQ,EAAJ,CAAO0B,cAAP,CAAsB,EAAClB,MAAM,CAAC,MAAD,EAAS,KAAT,EAAgB,KAAhB,CAAP,EAAtB,CAAb;;AAEAD,eAAOD,MAAP,EAAeG,EAAf,CAAkBC,IAAlB,CAAuBC,MAAvB,CAA8B,CAA9B;AACAJ,eAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,MAAhC;AACAd,eAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,MAAjC;AACAd,eAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,KAAhC;AACAd,eAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,KAAjC;AACAd,eAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,KAAhC;AACAd,eAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,KAAjC;AACAnB;AACH,KAXD;;AAaAD,OAAI,+CAAJ,EAAqD,UAASC,IAAT,EAAe;AAChE,YAAIM,OAAO,CACP,EAACgB,MAAM,MAAP,EAAeC,OAAO,SAAtB,EADO,EAEP,EAACD,MAAM,KAAP,EAAcC,OAAO,SAArB,EAFO,EAGP,EAACD,MAAM,KAAP,EAAcC,OAAO,SAArB,EAHO,CAAX;;AAMA,YAAInB,SAASd,IAAIQ,EAAJ,CAAO0B,cAAP,CAAsB,EAAClB,MAAMA,IAAP,EAAtB,CAAb;;AAEAD,eAAOD,MAAP,EAAeG,EAAf,CAAkBC,IAAlB,CAAuBC,MAAvB,CAA8B,CAA9B;AACAJ,eAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,MAAhC;AACAd,eAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,SAAjC;AACAd,eAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,KAAhC;AACAd,eAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,SAAjC;AACAd,eAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgC,KAAhC;AACAd,eAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,SAAjC;AACAnB;AACH,KAjBD;;AAmBAD,OAAI,+CAAJ,EAAqD,UAASC,IAAT,EAAe;AAChE,YAAIM,OAAO,CACP,EAACmB,GAAG,MAAJ,EAAYC,GAAG,SAAf,EADO,EAEP,EAACD,GAAG,KAAJ,EAAWC,GAAG,SAAd,EAFO,EAGP,EAACD,GAAG,KAAJ,EAAWC,GAAG,SAAd,EAHO,CAAX;;AAMA,YAAItB,SAASd,IAAIQ,EAAJ,CAAO0B,cAAP,CAAsB,EAAClB,MAAMA,IAAP,EAAtB,CAAb;;AAEAD,eAAOD,MAAP,EAAeG,EAAf,CAAkBC,IAAlB,CAAuBC,MAAvB,CAA8B,CAA9B;AACAJ,eAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgCb,KAAK,CAAL,CAAhC;AACAD,eAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,CAAjC;AACAd,eAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgCb,KAAK,CAAL,CAAhC;AACAD,eAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,CAAjC;AACAd,eAAOD,OAAO,CAAP,EAAUkB,IAAjB,EAAuBf,EAAvB,CAA0BY,KAA1B,CAAgCb,KAAK,CAAL,CAAhC;AACAD,eAAOD,OAAO,CAAP,EAAUmB,KAAjB,EAAwBhB,EAAxB,CAA2BY,KAA3B,CAAiC,CAAjC;AACAnB;AACH,KAjBD;AAkBH,CA3OD","file":"datasource_spec.js","sourcesContent":["import {Datasource} from \"../module\";\nimport Q from \"q\";\n\ndescribe('GenericDatasource', function() {\n var ctx = {};\n\n beforeEach(function() {\n ctx.$q = Q;\n ctx.backendSrv = {};\n ctx.templateSrv = {};\n var jsonData = { mongodb_url : 'mongodb://localhost:27017', mongodb_db : 'test_db' }\n ctx.ds = new Datasource({jsonData : jsonData}, ctx.$q, ctx.backendSrv, ctx.templateSrv);\n });\n\n it('should return an empty array when no targets are set', function(done) {\n ctx.ds.query({targets: []}).then(function(result) {\n expect(result.data).to.have.length(0);\n done();\n });\n });\n\n it('should return the server results when a target is set', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n return ctx.$q.when({\n _request: request,\n data: [\n {\n target: 'X',\n datapoints: [1, 2, 3]\n }\n ]\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.query({targets: ['hits']}).then(function(result) {\n expect(result._request.data.targets).to.have.length(1);\n expect(result._request.data.db.url).to.equal('mongodb://localhost:27017');\n expect(result._request.data.db.db).to.equal('test_db');\n\n var series = result.data[0];\n expect(series.target).to.equal('X');\n expect(series.datapoints).to.have.length(3);\n done();\n });\n });\n\n it ('should return the metric results when a target is null', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n return ctx.$q.when({\n _request: request,\n data: [\n \"metric_0\",\n \"metric_1\",\n \"metric_2\",\n ]\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery({target: null}).then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('metric_0');\n expect(result[0].value).to.equal('metric_0');\n expect(result[1].text).to.equal('metric_1');\n expect(result[1].value).to.equal('metric_1');\n expect(result[2].text).to.equal('metric_2');\n expect(result[2].value).to.equal('metric_2');\n done();\n });\n });\n\n it ('should return the metric target results when a target is set', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n var target = request.data.target;\n var result = [target + \"_0\", target + \"_1\", target + \"_2\"];\n\n return ctx.$q.when({\n _request: request,\n data: result\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery('search').then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('search_0');\n expect(result[0].value).to.equal('search_0');\n expect(result[1].text).to.equal('search_1');\n expect(result[1].value).to.equal('search_1');\n expect(result[2].text).to.equal('search_2');\n expect(result[2].value).to.equal('search_2');\n done();\n });\n });\n\n it ('should return the metric results when the target is an empty string', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n return ctx.$q.when({\n _request: request,\n data: [\n \"metric_0\",\n \"metric_1\",\n \"metric_2\",\n ]\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery('').then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('metric_0');\n expect(result[0].value).to.equal('metric_0');\n expect(result[1].text).to.equal('metric_1');\n expect(result[1].value).to.equal('metric_1');\n expect(result[2].text).to.equal('metric_2');\n expect(result[2].value).to.equal('metric_2');\n done();\n });\n });\n\n it ('should return the metric results when the args are an empty object', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n return ctx.$q.when({\n _request: request,\n data: [\n \"metric_0\",\n \"metric_1\",\n \"metric_2\",\n ]\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery().then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('metric_0');\n expect(result[0].value).to.equal('metric_0');\n expect(result[1].text).to.equal('metric_1');\n expect(result[1].value).to.equal('metric_1');\n expect(result[2].text).to.equal('metric_2');\n expect(result[2].value).to.equal('metric_2');\n done();\n });\n });\n\n it ('should return the metric target results when the args are a string', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n var target = request.data.target;\n var result = [target + \"_0\", target + \"_1\", target + \"_2\"];\n\n return ctx.$q.when({\n _request: request,\n data: result\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery('search').then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('search_0');\n expect(result[0].value).to.equal('search_0');\n expect(result[1].text).to.equal('search_1');\n expect(result[1].value).to.equal('search_1');\n expect(result[2].text).to.equal('search_2');\n expect(result[2].value).to.equal('search_2');\n done();\n });\n });\n\n it ('should return data as text and as value', function(done) {\n var result = ctx.ds.mapToTextValue({data: [\"zero\", \"one\", \"two\"]});\n\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('zero');\n expect(result[0].value).to.equal('zero');\n expect(result[1].text).to.equal('one');\n expect(result[1].value).to.equal('one');\n expect(result[2].text).to.equal('two');\n expect(result[2].value).to.equal('two');\n done();\n });\n\n it ('should return text as text and value as value', function(done) {\n var data = [\n {text: \"zero\", value: \"value_0\"},\n {text: \"one\", value: \"value_1\"},\n {text: \"two\", value: \"value_2\"},\n ];\n\n var result = ctx.ds.mapToTextValue({data: data});\n\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('zero');\n expect(result[0].value).to.equal('value_0');\n expect(result[1].text).to.equal('one');\n expect(result[1].value).to.equal('value_1');\n expect(result[2].text).to.equal('two');\n expect(result[2].value).to.equal('value_2');\n done();\n });\n\n it ('should return data as text and index as value', function(done) {\n var data = [\n {a: \"zero\", b: \"value_0\"},\n {a: \"one\", b: \"value_1\"},\n {a: \"two\", b: \"value_2\"},\n ];\n\n var result = ctx.ds.mapToTextValue({data: data});\n\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal(data[0]);\n expect(result[0].value).to.equal(0);\n expect(result[1].text).to.equal(data[1]);\n expect(result[1].value).to.equal(1);\n expect(result[2].text).to.equal(data[2]);\n expect(result[2].value).to.equal(2);\n done();\n });\n});\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../../spec/datasource_spec.js"],"names":["describe","ctx","beforeEach","$q","Q","backendSrv","templateSrv","jsonData","mongodb_url","mongodb_db","ds","Datasource","it","done","query","targets","then","result","expect","data","to","have","length","datasourceRequest","request","when","_request","target","datapoints","replace","db","url","equal","series","metricFindQuery","text","value","mapToTextValue","a","b"],"mappings":"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","file":"datasource_spec.js","sourcesContent":["import {Datasource} from \"../module\";\nimport Q from \"q\";\n\ndescribe('GenericDatasource', function() {\n var ctx = {};\n\n beforeEach(function() {\n ctx.$q = Q;\n ctx.backendSrv = {};\n ctx.templateSrv = {};\n var jsonData = { mongodb_url : 'mongodb://localhost:27017', mongodb_db : 'test_db' }\n ctx.ds = new Datasource({jsonData : jsonData}, ctx.$q, ctx.backendSrv, ctx.templateSrv);\n });\n\n it('should return an empty array when no targets are set', function(done) {\n ctx.ds.query({targets: []}).then(function(result) {\n expect(result.data).to.have.length(0);\n done();\n });\n });\n\n it('should return the server results when a target is set', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n return ctx.$q.when({\n _request: request,\n data: [\n {\n target: 'X',\n datapoints: [1, 2, 3]\n }\n ]\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.query({targets: ['hits']}).then(function(result) {\n expect(result._request.data.targets).to.have.length(1);\n expect(result._request.data.db.url).to.equal('mongodb://localhost:27017');\n expect(result._request.data.db.db).to.equal('test_db');\n\n var series = result.data[0];\n expect(series.target).to.equal('X');\n expect(series.datapoints).to.have.length(3);\n done();\n });\n });\n\n it ('should return the metric results when a target is null', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n return ctx.$q.when({\n _request: request,\n data: [\n \"metric_0\",\n \"metric_1\",\n \"metric_2\",\n ]\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery({target: null}).then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('metric_0');\n expect(result[0].value).to.equal('metric_0');\n expect(result[1].text).to.equal('metric_1');\n expect(result[1].value).to.equal('metric_1');\n expect(result[2].text).to.equal('metric_2');\n expect(result[2].value).to.equal('metric_2');\n done();\n });\n });\n\n it ('should return the metric target results when a target is set', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n var target = request.data.target;\n var result = [target + \"_0\", target + \"_1\", target + \"_2\"];\n\n return ctx.$q.when({\n _request: request,\n data: result\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery('search').then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('search_0');\n expect(result[0].value).to.equal('search_0');\n expect(result[1].text).to.equal('search_1');\n expect(result[1].value).to.equal('search_1');\n expect(result[2].text).to.equal('search_2');\n expect(result[2].value).to.equal('search_2');\n done();\n });\n });\n\n it ('should return the metric results when the target is an empty string', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n return ctx.$q.when({\n _request: request,\n data: [\n \"metric_0\",\n \"metric_1\",\n \"metric_2\",\n ]\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery('').then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('metric_0');\n expect(result[0].value).to.equal('metric_0');\n expect(result[1].text).to.equal('metric_1');\n expect(result[1].value).to.equal('metric_1');\n expect(result[2].text).to.equal('metric_2');\n expect(result[2].value).to.equal('metric_2');\n done();\n });\n });\n\n it ('should return the metric results when the args are an empty object', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n return ctx.$q.when({\n _request: request,\n data: [\n \"metric_0\",\n \"metric_1\",\n \"metric_2\",\n ]\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery().then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('metric_0');\n expect(result[0].value).to.equal('metric_0');\n expect(result[1].text).to.equal('metric_1');\n expect(result[1].value).to.equal('metric_1');\n expect(result[2].text).to.equal('metric_2');\n expect(result[2].value).to.equal('metric_2');\n done();\n });\n });\n\n it ('should return the metric target results when the args are a string', function(done) {\n ctx.backendSrv.datasourceRequest = function(request) {\n var target = request.data.target;\n var result = [target + \"_0\", target + \"_1\", target + \"_2\"];\n\n return ctx.$q.when({\n _request: request,\n data: result\n });\n };\n\n ctx.templateSrv.replace = function(data) {\n return data;\n }\n\n ctx.ds.metricFindQuery('search').then(function(result) {\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('search_0');\n expect(result[0].value).to.equal('search_0');\n expect(result[1].text).to.equal('search_1');\n expect(result[1].value).to.equal('search_1');\n expect(result[2].text).to.equal('search_2');\n expect(result[2].value).to.equal('search_2');\n done();\n });\n });\n\n it ('should return data as text and as value', function(done) {\n var result = ctx.ds.mapToTextValue({data: [\"zero\", \"one\", \"two\"]});\n\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('zero');\n expect(result[0].value).to.equal('zero');\n expect(result[1].text).to.equal('one');\n expect(result[1].value).to.equal('one');\n expect(result[2].text).to.equal('two');\n expect(result[2].value).to.equal('two');\n done();\n });\n\n it ('should return text as text and value as value', function(done) {\n var data = [\n {text: \"zero\", value: \"value_0\"},\n {text: \"one\", value: \"value_1\"},\n {text: \"two\", value: \"value_2\"},\n ];\n\n var result = ctx.ds.mapToTextValue({data: data});\n\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal('zero');\n expect(result[0].value).to.equal('value_0');\n expect(result[1].text).to.equal('one');\n expect(result[1].value).to.equal('value_1');\n expect(result[2].text).to.equal('two');\n expect(result[2].value).to.equal('value_2');\n done();\n });\n\n it ('should return data as text and index as value', function(done) {\n var data = [\n {a: \"zero\", b: \"value_0\"},\n {a: \"one\", b: \"value_1\"},\n {a: \"two\", b: \"value_2\"},\n ];\n\n var result = ctx.ds.mapToTextValue({data: data});\n\n expect(result).to.have.length(3);\n expect(result[0].text).to.equal(data[0]);\n expect(result[0].value).to.equal(0);\n expect(result[1].text).to.equal(data[1]);\n expect(result[1].value).to.equal(1);\n expect(result[2].text).to.equal(data[2]);\n expect(result[2].value).to.equal(2);\n done();\n });\n});\n"]}
\ No newline at end of file
diff --git a/dist/test/spec/test-main.js.map b/dist/test/spec/test-main.js.map
index a76158b..92ea5c1 100644
--- a/dist/test/spec/test-main.js.map
+++ b/dist/test/spec/test-main.js.map
@@ -1 +1 @@
-{"version":3,"sources":["../../../spec/test-main.js"],"names":["mock","QueryCtrl","global","document","window","parentWindow","should","assert","expect"],"mappings":";;AAAA;;;;AACA;;AACA;;;;;;AAEA;AACA;AACA,gBAAMA,IAAN,CAAW,yBAAX,EAAsC,eAAtC;AACA,gBAAMA,IAAN,CAAW,iBAAX,EAA8B;AAC1BC,eAAW;AADe,CAA9B;;AAIA;AACA;AACAC,OAAOC,QAAP,GAAkB,kBAAM,0DAAN,CAAlB;AACAD,OAAOE,MAAP,GAAgBF,OAAOC,QAAP,CAAgBE,YAAhC;;AAEA;AACA,eAAKC,MAAL;AACAJ,OAAOK,MAAP,GAAgB,eAAKA,MAArB;AACAL,OAAOM,MAAP,GAAgB,eAAKA,MAArB","file":"test-main.js","sourcesContent":["import prunk from 'prunk';\nimport {jsdom} from 'jsdom';\nimport chai from 'chai';\n\n// Mock Grafana modules that are not available outside of the core project\n// Required for loading module.js\nprunk.mock('./css/query-editor.css!', 'no css, dude.');\nprunk.mock('app/plugins/sdk', {\n QueryCtrl: null\n});\n\n// Setup jsdom\n// Required for loading angularjs\nglobal.document = jsdom('');\nglobal.window = global.document.parentWindow;\n\n// Setup Chai\nchai.should();\nglobal.assert = chai.assert;\nglobal.expect = chai.expect;\n"]}
\ No newline at end of file
+{"version":3,"sources":["../../../spec/test-main.js"],"names":["prunk","mock","QueryCtrl","global","document","window","parentWindow","chai","should","assert","expect"],"mappings":";;AAAA;;;;AACA;;AACA;;;;;;AAEA;AACA;AACAA,gBAAMC,IAAN,CAAW,yBAAX,EAAsC,eAAtC;AACAD,gBAAMC,IAAN,CAAW,iBAAX,EAA8B;AAC1BC,eAAW;AADe,CAA9B;;AAIA;AACA;AACAC,OAAOC,QAAP,GAAkB,kBAAM,0DAAN,CAAlB;AACAD,OAAOE,MAAP,GAAgBF,OAAOC,QAAP,CAAgBE,YAAhC;;AAEA;AACAC,eAAKC,MAAL;AACAL,OAAOM,MAAP,GAAgBF,eAAKE,MAArB;AACAN,OAAOO,MAAP,GAAgBH,eAAKG,MAArB","file":"test-main.js","sourcesContent":["import prunk from 'prunk';\nimport {jsdom} from 'jsdom';\nimport chai from 'chai';\n\n// Mock Grafana modules that are not available outside of the core project\n// Required for loading module.js\nprunk.mock('./css/query-editor.css!', 'no css, dude.');\nprunk.mock('app/plugins/sdk', {\n QueryCtrl: null\n});\n\n// Setup jsdom\n// Required for loading angularjs\nglobal.document = jsdom('');\nglobal.window = global.document.parentWindow;\n\n// Setup Chai\nchai.should();\nglobal.assert = chai.assert;\nglobal.expect = chai.expect;\n"]}
\ No newline at end of file
diff --git a/examples/Dockerfile b/examples/Dockerfile
new file mode 100644
index 0000000..13ea7d7
--- /dev/null
+++ b/examples/Dockerfile
@@ -0,0 +1,34 @@
+# Builder stage - build the Grafana plugin
+FROM node:16-alpine AS builder
+
+WORKDIR /app
+
+# Copy package files
+COPY package*.json ./
+
+# Install dependencies
+RUN npm install
+
+# Copy source files
+COPY . .
+
+# Build the plugin
+RUN npm run build
+
+# Runtime stage - run the MongoDB proxy server
+FROM node:16-alpine
+
+WORKDIR /app
+
+# Copy built files from builder
+COPY --from=builder /app/dist/server ./server
+COPY --from=builder /app/node_modules ./node_modules
+COPY --from=builder /app/package*.json ./
+
+WORKDIR /app/server
+
+# Expose proxy server port
+EXPOSE 3333
+
+# Start the proxy server
+CMD ["node", "mongodb-proxy.js"]
diff --git a/examples/Dockerfile.proxy b/examples/Dockerfile.proxy
new file mode 100644
index 0000000..5fcb57c
--- /dev/null
+++ b/examples/Dockerfile.proxy
@@ -0,0 +1,21 @@
+FROM node:16-alpine
+
+WORKDIR /app
+
+# Copy package files
+COPY package*.json ./
+
+# Install dependencies
+RUN npm ci --only=production
+
+# Copy application files
+COPY . .
+
+# Build the application
+RUN npm run build
+
+# Expose proxy port
+EXPOSE 3333
+
+# Start the proxy server
+CMD ["npm", "run", "server"]
diff --git a/examples/README.md b/examples/README.md
new file mode 100644
index 0000000..3f2fea7
--- /dev/null
+++ b/examples/README.md
@@ -0,0 +1,285 @@
+# MongoDB Grafana Plugin - Docker Examples
+
+This directory contains a complete Docker Compose setup for quickly testing and developing with the MongoDB Grafana datasource plugin.
+
+## What's Included
+
+The Docker Compose stack includes:
+
+- **MongoDB 6.0** - Database with sample sensor data
+- **MongoDB Proxy** - Node.js proxy server that translates Grafana queries to MongoDB
+- **Grafana 10.2** - Pre-configured with the MongoDB datasource plugin
+
+## Quick Start
+
+### Prerequisites
+
+- Docker Engine 20.10 or higher
+- Docker Compose v2.0 or higher
+- At least 2GB of free RAM
+
+### Starting the Stack
+
+1. Navigate to the examples directory:
+```bash
+cd examples
+```
+
+2. Start all services:
+```bash
+docker-compose up -d
+```
+
+3. Wait for all services to be healthy (30-60 seconds):
+```bash
+docker-compose ps
+```
+
+You should see all services in "healthy" status.
+
+### Access the Services
+
+Once running, you can access:
+
+- **Grafana UI**: http://localhost:3000
+ - Username: `admin`
+ - Password: `admin`
+
+- **MongoDB Proxy**: http://localhost:3333
+ - Health check: http://localhost:3333/
+
+- **MongoDB**: `localhost:27017`
+ - Admin user: `admin` / `password`
+ - Grafana user: `grafana_reader` / `grafana_password`
+ - Database: `testdb`
+
+## Sample Data
+
+The MongoDB database is initialized with sample sensor data in the `testdb.sensor_data` collection:
+
+```javascript
+{
+ sensor_type: "temperature" | "humidity",
+ host_name: "demo-host-1",
+ sensor_value: ,
+ ts:
+}
+```
+
+## Testing the Data Source
+
+### 1. Verify Data Source Configuration
+
+1. Log into Grafana at http://localhost:3000
+2. Go to **Configuration → Data Sources**
+3. You should see "MongoDB Demo" already configured
+4. Click on it and verify connection with **Save & Test**
+
+### 2. Create Your First Panel
+
+1. Create a new dashboard
+2. Add a new panel
+3. Select "MongoDB Demo" as the data source
+4. Use this sample query:
+
+```javascript
+db.sensor_data.aggregate([
+ { "$match": {
+ "sensor_type": "temperature",
+ "ts": { "$gte": "$from", "$lte": "$to" }
+ }},
+ { "$sort": { "ts": 1 }},
+ { "$project": {
+ "name": "$sensor_type",
+ "value": "$sensor_value",
+ "ts": "$ts",
+ "_id": 0
+ }}
+])
+```
+
+5. Set the time range to "Last 24 hours"
+6. You should see the temperature data plotted
+
+### 3. Import Example Dashboards
+
+The `examples/` directory also contains pre-built dashboard JSON files:
+
+- `RPI MongoDB - Atlas.json`
+- `RPI MongoDB Bucket - Atlas.json`
+- `Sensor Value Counts - Atlas.json`
+
+To import:
+1. Go to **Dashboards → Import**
+2. Upload the JSON file
+3. Select "MongoDB Demo" as the data source
+4. Click **Import**
+
+## Development Workflow
+
+### Making Changes to the Plugin
+
+If you're developing the plugin:
+
+1. Make changes to the plugin source code in `src/` or `server/`
+
+2. Rebuild the plugin:
+```bash
+cd ..
+npm run build
+```
+
+3. Restart the Grafana container to pick up changes:
+```bash
+cd examples
+docker-compose restart grafana
+```
+
+### Viewing Logs
+
+View logs for all services:
+```bash
+docker-compose logs -f
+```
+
+View logs for a specific service:
+```bash
+docker-compose logs -f mongodb-proxy
+docker-compose logs -f grafana
+docker-compose logs -f mongodb
+```
+
+### Accessing MongoDB CLI
+
+To connect to MongoDB directly:
+```bash
+docker-compose exec mongodb mongosh testdb -u grafana_reader -p grafana_password
+```
+
+Example queries:
+```javascript
+// Show collections
+show collections
+
+// Count documents
+db.sensor_data.countDocuments()
+
+// Find recent data
+db.sensor_data.find().sort({ts: -1}).limit(5)
+
+// Test aggregation
+db.sensor_data.aggregate([
+ { $group: { _id: "$sensor_type", count: { $sum: 1 }}}
+])
+```
+
+## Stopping and Cleaning Up
+
+### Stop the stack (preserves data):
+```bash
+docker-compose stop
+```
+
+### Stop and remove containers (preserves data):
+```bash
+docker-compose down
+```
+
+### Stop and remove everything including data volumes:
+```bash
+docker-compose down -v
+```
+
+## Troubleshooting
+
+### Grafana shows "Plugin not found"
+
+1. Check that the plugin is mounted correctly:
+```bash
+docker-compose exec grafana ls -la /var/lib/grafana/plugins/mongodb-grafana
+```
+
+2. Restart Grafana:
+```bash
+docker-compose restart grafana
+```
+
+### MongoDB Proxy connection fails
+
+1. Check proxy logs:
+```bash
+docker-compose logs mongodb-proxy
+```
+
+2. Verify MongoDB is accessible from the proxy:
+```bash
+docker-compose exec mongodb-proxy wget -O- http://mongodb:27017
+```
+
+### No data in dashboards
+
+1. Verify sample data was inserted:
+```bash
+docker-compose exec mongodb mongosh testdb -u grafana_reader -p grafana_password --eval "db.sensor_data.countDocuments()"
+```
+
+2. Check the time range in Grafana - the sample data has fixed timestamps
+
+3. Adjust the time range or insert current data:
+```bash
+docker-compose exec mongodb mongosh testdb -u admin -p password --authenticationDatabase admin --eval "
+db.sensor_data.insertOne({
+ sensor_type: 'temperature',
+ host_name: 'demo-host-1',
+ sensor_value: 25.0,
+ ts: new Date()
+})
+"
+```
+
+## Customization
+
+### Using Your Own MongoDB
+
+To connect to an external MongoDB instance:
+
+1. Edit `provisioning/datasources/mongodb.yml`
+2. Update the `mongodbUrl` with your connection string
+3. Update the `mongodbDatabase` with your database name
+4. Restart the stack
+
+### Changing Ports
+
+Edit `docker-compose.yml` and modify the `ports` section for each service.
+
+### Adding More Sample Data
+
+Edit `init-mongo.js` to add more collections or data patterns.
+
+## Production Considerations
+
+⚠️ **This setup is for development and testing only!**
+
+For production deployments:
+
+- Use strong passwords (not hardcoded in files)
+- Use Docker secrets or environment files for sensitive data
+- Enable MongoDB authentication and SSL/TLS
+- Use proper MongoDB replica sets or clusters
+- Configure Grafana for HTTPS
+- Set up proper monitoring and logging
+- Use persistent volumes with backup strategies
+- Limit resource usage with Docker resource constraints
+- Run the proxy behind a reverse proxy with authentication
+
+See the main [README.md](../README.md) for production deployment guidance.
+
+## Getting Help
+
+- Check the main [README.md](../README.md)
+- Report issues: https://github.com/ranas-mukminov/mongodb-grafana/issues
+- Professional support: https://run-as-daemon.ru
+
+## License
+
+Same as parent project - ISC License
diff --git a/examples/docker-compose.yml b/examples/docker-compose.yml
new file mode 100644
index 0000000..0fad758
--- /dev/null
+++ b/examples/docker-compose.yml
@@ -0,0 +1,79 @@
+version: '3.8'
+
+services:
+ # MongoDB database
+ mongodb:
+ image: mongo:6.0
+ container_name: mongodb-grafana-demo
+ ports:
+ - "27017:27017"
+ environment:
+ MONGO_INITDB_ROOT_USERNAME: admin
+ MONGO_INITDB_ROOT_PASSWORD: password
+ MONGO_INITDB_DATABASE: testdb
+ volumes:
+ - mongodb_data:/data/db
+ - ./init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
+ networks:
+ - grafana-network
+ healthcheck:
+ test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet
+ interval: 10s
+ timeout: 5s
+ retries: 5
+
+ # MongoDB Grafana Proxy
+ mongodb-proxy:
+ build:
+ context: ..
+ dockerfile: examples/Dockerfile.proxy
+ container_name: mongodb-proxy
+ ports:
+ - "3333:3333"
+ environment:
+ - NODE_ENV=production
+ depends_on:
+ mongodb:
+ condition: service_healthy
+ networks:
+ - grafana-network
+ healthcheck:
+ test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3333/"]
+ interval: 10s
+ timeout: 5s
+ retries: 3
+
+ # Grafana
+ grafana:
+ image: grafana/grafana:10.2.0
+ container_name: grafana
+ ports:
+ - "3000:3000"
+ environment:
+ - GF_SECURITY_ADMIN_USER=admin
+ - GF_SECURITY_ADMIN_PASSWORD=admin
+ - GF_INSTALL_PLUGINS=
+ volumes:
+ - grafana_data:/var/lib/grafana
+ - ../dist:/var/lib/grafana/plugins/mongodb-grafana:ro
+ - ./provisioning:/etc/grafana/provisioning:ro
+ depends_on:
+ mongodb-proxy:
+ condition: service_healthy
+ networks:
+ - grafana-network
+ healthcheck:
+ test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api/health"]
+ interval: 10s
+ timeout: 5s
+ retries: 3
+
+volumes:
+ mongodb_data:
+ driver: local
+ grafana_data:
+ driver: local
+
+networks:
+ grafana-network:
+ driver: bridge
diff --git a/examples/init-mongo.js b/examples/init-mongo.js
new file mode 100644
index 0000000..ccfc154
--- /dev/null
+++ b/examples/init-mongo.js
@@ -0,0 +1,63 @@
+// Initialize MongoDB with sample data for testing
+
+db = db.getSiblingDB('testdb');
+
+// Create a collection with sample sensor data
+db.sensor_data.insertMany([
+ {
+ sensor_type: "temperature",
+ host_name: "demo-host-1",
+ sensor_value: 22.5,
+ ts: new Date("2024-01-01T00:00:00Z")
+ },
+ {
+ sensor_type: "temperature",
+ host_name: "demo-host-1",
+ sensor_value: 23.1,
+ ts: new Date("2024-01-01T00:05:00Z")
+ },
+ {
+ sensor_type: "temperature",
+ host_name: "demo-host-1",
+ sensor_value: 23.8,
+ ts: new Date("2024-01-01T00:10:00Z")
+ },
+ {
+ sensor_type: "humidity",
+ host_name: "demo-host-1",
+ sensor_value: 45.2,
+ ts: new Date("2024-01-01T00:00:00Z")
+ },
+ {
+ sensor_type: "humidity",
+ host_name: "demo-host-1",
+ sensor_value: 46.5,
+ ts: new Date("2024-01-01T00:05:00Z")
+ },
+ {
+ sensor_type: "humidity",
+ host_name: "demo-host-1",
+ sensor_value: 47.1,
+ ts: new Date("2024-01-01T00:10:00Z")
+ }
+]);
+
+// Create index on timestamp field for better query performance
+db.sensor_data.createIndex({ ts: 1 });
+db.sensor_data.createIndex({ sensor_type: 1, host_name: 1, ts: 1 });
+
+// Create a read-only user for Grafana
+db.createUser({
+ user: "grafana_reader",
+ pwd: "grafana_password",
+ roles: [
+ {
+ role: "read",
+ db: "testdb"
+ }
+ ]
+});
+
+print("MongoDB initialization completed successfully!");
+print("Sample data inserted into testdb.sensor_data");
+print("Created user: grafana_reader");
diff --git a/examples/provisioning/datasources/mongodb.yml b/examples/provisioning/datasources/mongodb.yml
new file mode 100644
index 0000000..9713dcd
--- /dev/null
+++ b/examples/provisioning/datasources/mongodb.yml
@@ -0,0 +1,12 @@
+apiVersion: 1
+
+datasources:
+ - name: MongoDB Demo
+ type: grafana-mongodb-datasource
+ access: proxy
+ url: http://mongodb-proxy:3333
+ jsonData:
+ mongodbUrl: "mongodb://grafana_reader:grafana_password@mongodb:27017/testdb?authSource=testdb"
+ mongodbDatabase: "testdb"
+ isDefault: true
+ editable: true
diff --git a/package-lock.json b/package-lock.json
index 610f63e..3e22a67 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,224 +1,340 @@
{
"name": "grafana-mongodb",
- "version": "0.7.0",
- "lockfileVersion": 1,
+ "version": "0.8.1",
+ "lockfileVersion": 3,
"requires": true,
- "dependencies": {
- "abab": {
+ "packages": {
+ "": {
+ "name": "grafana-mongodb",
+ "version": "0.8.1",
+ "license": "ISC",
+ "dependencies": {
+ "babel-plugin-transform-es2015-for-of": "^6.6.0",
+ "babel-plugin-transform-es2015-modules-systemjs": "^6.24.1",
+ "babel-preset-es2015": "^6.24.1",
+ "body-parser": "^1.20.3",
+ "config": "^1.30.0",
+ "express": "^4.21.2",
+ "fs": "0.0.1-security",
+ "lodash": "^4.17.21",
+ "mocha": "^5.2.0",
+ "moment": "^2.30.1",
+ "mongodb": "^3.7.4",
+ "statman-stopwatch": "^2.7.0"
+ },
+ "devDependencies": {
+ "babel": "^6.23.0",
+ "chai": "~3.5.0",
+ "grunt": "^1.0.3",
+ "grunt-babel": "~6.0.0",
+ "grunt-cli": "^1.2.0",
+ "grunt-contrib-clean": "^1.1.0",
+ "grunt-contrib-copy": "^1.0.0",
+ "grunt-contrib-uglify": "^2.3.0",
+ "grunt-contrib-watch": "^1.1.0",
+ "grunt-execute": "~0.2.2",
+ "grunt-mocha-test": "^0.13.3",
+ "grunt-systemjs-builder": "^1.0.0",
+ "jsdom": "~9.12.0",
+ "load-grunt-tasks": "^3.5.2",
+ "prunk": "^1.3.0",
+ "q": "^1.5.0"
+ },
+ "engines": {
+ "node": "6.10.0"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "0.0.38",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.38.tgz",
+ "integrity": "sha512-F/v7t1LwS4vnXuPooJQGBRKRGIoxWUTmA4VHfqjOccFsNDThD5bfUNpITive6s352O7o384wcpEaDV8rHCehDA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "24.10.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz",
+ "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~7.16.0"
+ }
+ },
+ "node_modules/abab": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
"integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
+ "deprecated": "Use your platform's native atob() and btoa() methods instead",
"dev": true
},
- "abbrev": {
+ "node_modules/abbrev": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
},
- "accepts": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
- "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
- "requires": {
- "mime-types": "~2.1.18",
- "negotiator": "0.6.1"
- },
+ "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==",
+ "license": "MIT",
"dependencies": {
- "mime-db": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
- "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
- },
- "mime-types": {
- "version": "2.1.18",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
- "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
- "requires": {
- "mime-db": "~1.33.0"
- }
- }
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "acorn": {
+ "node_modules/acorn": {
"version": "4.0.13",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz",
"integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=",
- "dev": true
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "acorn-globals": {
+ "node_modules/acorn-globals": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-3.1.0.tgz",
"integrity": "sha1-/YJw9x+7SZawBPqIDuXUZXOnMb8=",
"dev": true,
- "requires": {
+ "dependencies": {
"acorn": "^4.0.4"
}
},
- "ajv": {
- "version": "5.5.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.5.2.tgz",
- "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=",
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
- "requires": {
- "co": "^4.6.0",
- "fast-deep-equal": "^1.0.0",
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.3.0"
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
}
},
- "align-text": {
+ "node_modules/align-text": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
"integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
"dev": true,
- "requires": {
+ "dependencies": {
"kind-of": "^3.0.2",
"longest": "^1.0.1",
"repeat-string": "^1.5.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "amdefine": {
+ "node_modules/amdefine": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
"integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.2"
+ }
},
- "ansi-regex": {
+ "node_modules/ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+ "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "ansi-styles": {
+ "node_modules/ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
- "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
+ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "argparse": {
+ "node_modules/argparse": {
"version": "1.0.10",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
"integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "requires": {
- "sprintf-js": "~1.0.2"
- },
+ "license": "MIT",
"dependencies": {
- "sprintf-js": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
- "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
- "dev": true
- }
+ "sprintf-js": "~1.0.2"
}
},
- "array-differ": {
+ "node_modules/array-differ": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz",
"integrity": "sha1-7/UuN1gknTO+QCuLuOVkuytdQDE=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-each": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz",
+ "integrity": "sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "array-equal": {
+ "node_modules/array-equal": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz",
"integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=",
"dev": true
},
- "array-find-index": {
+ "node_modules/array-find-index": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "array-flatten": {
+ "node_modules/array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
- "array-union": {
+ "node_modules/array-slice": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz",
+ "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/array-union": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
"integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=",
"dev": true,
- "requires": {
+ "dependencies": {
"array-uniq": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "array-uniq": {
+ "node_modules/array-uniq": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
"integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "arrify": {
+ "node_modules/arrify": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz",
"integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "asn1": {
+ "node_modules/asn1": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz",
"integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=",
"dev": true
},
- "assert-plus": {
+ "node_modules/assert-plus": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.8"
+ }
},
- "assertion-error": {
+ "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
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
},
- "async": {
+ "node_modules/async": {
"version": "1.5.2",
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
"dev": true
},
- "asynckit": {
+ "node_modules/asynckit": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
- "dev": true
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true,
+ "license": "MIT"
},
- "aws-sign2": {
+ "node_modules/aws-sign2": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
"integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
},
- "aws4": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz",
- "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=",
- "dev": true
+ "node_modules/aws4": {
+ "version": "1.13.2",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.13.2.tgz",
+ "integrity": "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw==",
+ "dev": true,
+ "license": "MIT"
},
- "babel": {
+ "node_modules/babel": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel/-/babel-6.23.0.tgz",
"integrity": "sha1-0NHn2APpdHZb7qMjLU4VPA77kPQ=",
- "dev": true
+ "deprecated": "In 6.x, the babel package has been deprecated in favor of babel-cli. Check https://opencollective.com/babel to support the Babel maintainers",
+ "dev": true,
+ "bin": {
+ "babel": "lib/cli.js",
+ "babel-external-helpers": "lib/cli.js",
+ "babel-node": "lib/cli.js"
+ }
},
- "babel-code-frame": {
+ "node_modules/babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
- "requires": {
+ "dependencies": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
}
},
- "babel-core": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz",
- "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=",
+ "node_modules/babel-core": {
+ "version": "6.26.3",
+ "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.3.tgz",
+ "integrity": "sha512-6jyFLuDmeidKmUEb3NM+/yawG0M2bDZ9Z1qbZP59cyHLz8kYGKYwpJP0UwUKKUiTRNvxfLesJnTedqczP7cTDA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"babel-code-frame": "^6.26.0",
"babel-generator": "^6.26.0",
"babel-helpers": "^6.24.1",
@@ -229,23 +345,23 @@
"babel-traverse": "^6.26.0",
"babel-types": "^6.26.0",
"babylon": "^6.18.0",
- "convert-source-map": "^1.5.0",
- "debug": "^2.6.8",
+ "convert-source-map": "^1.5.1",
+ "debug": "^2.6.9",
"json5": "^0.5.1",
"lodash": "^4.17.4",
"minimatch": "^3.0.4",
"path-is-absolute": "^1.0.1",
- "private": "^0.1.7",
+ "private": "^0.1.8",
"slash": "^1.0.0",
- "source-map": "^0.5.6"
+ "source-map": "^0.5.7"
}
},
- "babel-generator": {
+ "node_modules/babel-generator": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz",
"integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=",
"dev": true,
- "requires": {
+ "dependencies": {
"babel-messages": "^6.23.0",
"babel-runtime": "^6.26.0",
"babel-types": "^6.26.0",
@@ -254,43 +370,47 @@
"lodash": "^4.17.4",
"source-map": "^0.5.6",
"trim-right": "^1.0.1"
- },
- "dependencies": {
- "jsesc": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
- "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
- "dev": true
- }
}
},
- "babel-helper-call-delegate": {
+ "node_modules/babel-generator/node_modules/jsesc": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz",
+ "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=",
+ "dev": true,
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
+ },
+ "node_modules/babel-helper-call-delegate": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz",
- "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=",
- "requires": {
+ "integrity": "sha512-RL8n2NiEj+kKztlrVJM9JT1cXzzAdvWFh76xh/H1I4nKwunzE4INBXn8ieCZ+wh4zWszZk7NBS1s/8HR5jDkzQ==",
+ "license": "MIT",
+ "dependencies": {
"babel-helper-hoist-variables": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-traverse": "^6.24.1",
"babel-types": "^6.24.1"
}
},
- "babel-helper-define-map": {
+ "node_modules/babel-helper-define-map": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz",
- "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=",
- "requires": {
+ "integrity": "sha512-bHkmjcC9lM1kmZcVpA5t2om2nzT/xiZpo6TJq7UlZ3wqKfzia4veeXbIhKvJXAMzhhEBd3cR1IElL5AenWEUpA==",
+ "license": "MIT",
+ "dependencies": {
"babel-helper-function-name": "^6.24.1",
"babel-runtime": "^6.26.0",
"babel-types": "^6.26.0",
"lodash": "^4.17.4"
}
},
- "babel-helper-function-name": {
+ "node_modules/babel-helper-function-name": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz",
- "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=",
- "requires": {
+ "integrity": "sha512-Oo6+e2iX+o9eVvJ9Y5eKL5iryeRdsIkwRYheCuhYdVHsdEQysbc2z2QkqCLIYnNxkT5Ss3ggrHdXiDI7Dhrn4Q==",
+ "license": "MIT",
+ "dependencies": {
"babel-helper-get-function-arity": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1",
@@ -298,48 +418,49 @@
"babel-types": "^6.24.1"
}
},
- "babel-helper-get-function-arity": {
+ "node_modules/babel-helper-get-function-arity": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz",
"integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
}
},
- "babel-helper-hoist-variables": {
+ "node_modules/babel-helper-hoist-variables": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz",
"integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
}
},
- "babel-helper-optimise-call-expression": {
+ "node_modules/babel-helper-optimise-call-expression": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz",
"integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
}
},
- "babel-helper-regex": {
+ "node_modules/babel-helper-regex": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz",
"integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.26.0",
"babel-types": "^6.26.0",
"lodash": "^4.17.4"
}
},
- "babel-helper-replace-supers": {
+ "node_modules/babel-helper-replace-supers": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz",
- "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=",
- "requires": {
+ "integrity": "sha512-sLI+u7sXJh6+ToqDr57Bv973kCepItDhMou0xCP2YPVmR1jkHSCY+p1no8xErbV1Siz5QE8qKT1WIwybSWlqjw==",
+ "license": "MIT",
+ "dependencies": {
"babel-helper-optimise-call-expression": "^6.24.1",
"babel-messages": "^6.23.0",
"babel-runtime": "^6.22.0",
@@ -348,77 +469,81 @@
"babel-types": "^6.24.1"
}
},
- "babel-helpers": {
+ "node_modules/babel-helpers": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz",
- "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=",
+ "integrity": "sha512-n7pFrqQm44TCYvrCDb0MqabAF+JUBq+ijBvNMUxpkLjJaAu32faIexewMumrH5KLLJ1HDyT0PTEqRyAe/GwwuQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
}
},
- "babel-messages": {
+ "node_modules/babel-messages": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz",
"integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-check-es2015-constants": {
+ "node_modules/babel-plugin-check-es2015-constants": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz",
"integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-syntax-dynamic-import": {
+ "node_modules/babel-plugin-syntax-dynamic-import": {
"version": "6.18.0",
"resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz",
"integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=",
"dev": true
},
- "babel-plugin-transform-amd-system-wrapper": {
+ "node_modules/babel-plugin-transform-amd-system-wrapper": {
"version": "0.3.7",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-amd-system-wrapper/-/babel-plugin-transform-amd-system-wrapper-0.3.7.tgz",
- "integrity": "sha1-Uhx4LTVkRJHJeepoPopeHK/wukI=",
+ "integrity": "sha512-dRL+LfRZrMfq7N4zlHRpBJq3/Moxg+dVcLIyg1YrYDuecgX4jSzn1f4OwjTrK/Xk+p+afNzNaHRQT3RTF8F6yw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"babel-template": "^6.9.0"
}
},
- "babel-plugin-transform-cjs-system-wrapper": {
+ "node_modules/babel-plugin-transform-cjs-system-wrapper": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-cjs-system-wrapper/-/babel-plugin-transform-cjs-system-wrapper-0.6.2.tgz",
- "integrity": "sha1-vXSUd1KJQk/0k7btRV3klb1xuh0=",
+ "integrity": "sha512-POp05zg9/3MtDK5QcmsaOasCKWIgbnma8+DLwQAl45Plw5ub1PEr37rG3eNrHb/dP0LEyWjTT3PYu2TDA0owsA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"babel-template": "^6.9.0"
}
},
- "babel-plugin-transform-es2015-arrow-functions": {
+ "node_modules/babel-plugin-transform-es2015-arrow-functions": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz",
"integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-transform-es2015-block-scoped-functions": {
+ "node_modules/babel-plugin-transform-es2015-block-scoped-functions": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz",
"integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-transform-es2015-block-scoping": {
+ "node_modules/babel-plugin-transform-es2015-block-scoping": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz",
- "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=",
- "requires": {
+ "integrity": "sha512-YiN6sFAQ5lML8JjCmr7uerS5Yc/EMbgg9G8ZNmk2E3nYX4ckHR01wrkeeMijEf5WHNK5TW0Sl0Uu3pv3EdOJWw==",
+ "license": "MIT",
+ "dependencies": {
"babel-runtime": "^6.26.0",
"babel-template": "^6.26.0",
"babel-traverse": "^6.26.0",
@@ -426,11 +551,12 @@
"lodash": "^4.17.4"
}
},
- "babel-plugin-transform-es2015-classes": {
+ "node_modules/babel-plugin-transform-es2015-classes": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz",
- "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=",
- "requires": {
+ "integrity": "sha512-5Dy7ZbRinGrNtmWpquZKZ3EGY8sDgIVB4CU8Om8q8tnMLrD/m94cKglVcHps0BCTdZ0TJeeAWOq2TK9MIY6cag==",
+ "license": "MIT",
+ "dependencies": {
"babel-helper-define-map": "^6.24.1",
"babel-helper-function-name": "^6.24.1",
"babel-helper-optimise-call-expression": "^6.24.1",
@@ -442,113 +568,121 @@
"babel-types": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-computed-properties": {
+ "node_modules/babel-plugin-transform-es2015-computed-properties": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz",
- "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=",
- "requires": {
+ "integrity": "sha512-C/uAv4ktFP/Hmh01gMTvYvICrKze0XVX9f2PdIXuriCSvUmV9j+u+BB9f5fJK3+878yMK6dkdcq+Ymr9mrcLzw==",
+ "license": "MIT",
+ "dependencies": {
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-destructuring": {
+ "node_modules/babel-plugin-transform-es2015-destructuring": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz",
"integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-transform-es2015-duplicate-keys": {
+ "node_modules/babel-plugin-transform-es2015-duplicate-keys": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz",
"integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-for-of": {
+ "node_modules/babel-plugin-transform-es2015-for-of": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz",
"integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-transform-es2015-function-name": {
+ "node_modules/babel-plugin-transform-es2015-function-name": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz",
- "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=",
- "requires": {
+ "integrity": "sha512-iFp5KIcorf11iBqu/y/a7DK3MN5di3pNCzto61FqCNnUX4qeBwcV1SLqe10oXNnCaxBUImX3SckX2/o1nsrTcg==",
+ "license": "MIT",
+ "dependencies": {
"babel-helper-function-name": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-literals": {
+ "node_modules/babel-plugin-transform-es2015-literals": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz",
"integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-transform-es2015-modules-amd": {
+ "node_modules/babel-plugin-transform-es2015-modules-amd": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz",
- "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=",
- "requires": {
+ "integrity": "sha512-LnIIdGWIKdw7zwckqx+eGjcS8/cl8D74A3BpJbGjKTFFNJSMrjN4bIh22HY1AlkUbeLG6X6OZj56BDvWD+OeFA==",
+ "license": "MIT",
+ "dependencies": {
"babel-plugin-transform-es2015-modules-commonjs": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-modules-commonjs": {
- "version": "6.26.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz",
- "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=",
- "requires": {
+ "node_modules/babel-plugin-transform-es2015-modules-commonjs": {
+ "version": "6.26.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.2.tgz",
+ "integrity": "sha512-CV9ROOHEdrjcwhIaJNBGMBCodN+1cfkwtM1SbUHmvyy35KGT7fohbpOxkE2uLz1o6odKK2Ck/tz47z+VqQfi9Q==",
+ "license": "MIT",
+ "dependencies": {
"babel-plugin-transform-strict-mode": "^6.24.1",
"babel-runtime": "^6.26.0",
"babel-template": "^6.26.0",
"babel-types": "^6.26.0"
}
},
- "babel-plugin-transform-es2015-modules-systemjs": {
+ "node_modules/babel-plugin-transform-es2015-modules-systemjs": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz",
- "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=",
- "requires": {
+ "integrity": "sha512-ONFIPsq8y4bls5PPsAWYXH/21Hqv64TBxdje0FvU3MhIV6QM2j5YS7KvAzg/nTIVLot2D2fmFQrFWCbgHlFEjg==",
+ "license": "MIT",
+ "dependencies": {
"babel-helper-hoist-variables": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-modules-umd": {
+ "node_modules/babel-plugin-transform-es2015-modules-umd": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz",
- "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=",
- "requires": {
+ "integrity": "sha512-LpVbiT9CLsuAIp3IG0tfbVo81QIhn6pE8xBJ7XSeCtFlMltuar5VuBV6y6Q45tpui9QWcy5i0vLQfCfrnF7Kiw==",
+ "license": "MIT",
+ "dependencies": {
"babel-plugin-transform-es2015-modules-amd": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-template": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-object-super": {
+ "node_modules/babel-plugin-transform-es2015-object-super": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz",
- "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=",
- "requires": {
+ "integrity": "sha512-8G5hpZMecb53vpD3mjs64NhI1au24TAmokQ4B+TBFBjN9cVoGoOvotdrMMRmHvVZUEvqGUPWL514woru1ChZMA==",
+ "license": "MIT",
+ "dependencies": {
"babel-helper-replace-supers": "^6.24.1",
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-transform-es2015-parameters": {
+ "node_modules/babel-plugin-transform-es2015-parameters": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz",
- "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=",
- "requires": {
+ "integrity": "sha512-8HxlW+BB5HqniD+nLkQ4xSAVq3bR/pcYW9IigY+2y0dI+Y7INFeTbfAQr+63T3E4UDsZGjyb+l9txUnABWxlOQ==",
+ "license": "MIT",
+ "dependencies": {
"babel-helper-call-delegate": "^6.24.1",
"babel-helper-get-function-arity": "^6.24.1",
"babel-runtime": "^6.22.0",
@@ -557,96 +691,99 @@
"babel-types": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-shorthand-properties": {
+ "node_modules/babel-plugin-transform-es2015-shorthand-properties": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz",
"integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-spread": {
+ "node_modules/babel-plugin-transform-es2015-spread": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz",
"integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-transform-es2015-sticky-regex": {
+ "node_modules/babel-plugin-transform-es2015-sticky-regex": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz",
"integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=",
- "requires": {
+ "dependencies": {
"babel-helper-regex": "^6.24.1",
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
}
},
- "babel-plugin-transform-es2015-template-literals": {
+ "node_modules/babel-plugin-transform-es2015-template-literals": {
"version": "6.22.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz",
"integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-transform-es2015-typeof-symbol": {
+ "node_modules/babel-plugin-transform-es2015-typeof-symbol": {
"version": "6.23.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz",
"integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0"
}
},
- "babel-plugin-transform-es2015-unicode-regex": {
+ "node_modules/babel-plugin-transform-es2015-unicode-regex": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz",
"integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=",
- "requires": {
+ "dependencies": {
"babel-helper-regex": "^6.24.1",
"babel-runtime": "^6.22.0",
"regexpu-core": "^2.0.0"
}
},
- "babel-plugin-transform-global-system-wrapper": {
+ "node_modules/babel-plugin-transform-global-system-wrapper": {
"version": "0.3.4",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-global-system-wrapper/-/babel-plugin-transform-global-system-wrapper-0.3.4.tgz",
- "integrity": "sha1-lI3X0p/CFEfjm9NEfy3rx/L3Oqw=",
+ "integrity": "sha512-WDCmdUeRLqn25gzR7fYmNOWVXwnDOhR0cM0uOJ0kDP3EdF2Y1I6G6y5pBDeZoLOgu5xCe8cEzOMKRljxu0oGdw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"babel-template": "^6.9.0"
}
},
- "babel-plugin-transform-regenerator": {
+ "node_modules/babel-plugin-transform-regenerator": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz",
"integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=",
- "requires": {
+ "dependencies": {
"regenerator-transform": "^0.10.0"
}
},
- "babel-plugin-transform-strict-mode": {
+ "node_modules/babel-plugin-transform-strict-mode": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz",
"integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.22.0",
"babel-types": "^6.24.1"
}
},
- "babel-plugin-transform-system-register": {
+ "node_modules/babel-plugin-transform-system-register": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/babel-plugin-transform-system-register/-/babel-plugin-transform-system-register-0.0.1.tgz",
"integrity": "sha1-nf9AOQwnY6xRjwsq18XqT2WlviU=",
"dev": true
},
- "babel-preset-es2015": {
+ "node_modules/babel-preset-es2015": {
"version": "6.24.1",
"resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz",
- "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=",
- "requires": {
+ "integrity": "sha512-XfwUqG1Ry6R43m4Wfob+vHbIVBIqTg/TJY4Snku1iIzeH7mUnwHA8Vagmv+ZQbPwhS8HgsdQvy28Py3k5zpoFQ==",
+ "deprecated": "🙌 Thanks for using Babel: we recommend using babel-preset-env now: please read https://babeljs.io/env to update!",
+ "license": "MIT",
+ "dependencies": {
"babel-plugin-check-es2015-constants": "^6.22.0",
"babel-plugin-transform-es2015-arrow-functions": "^6.22.0",
"babel-plugin-transform-es2015-block-scoped-functions": "^6.22.0",
@@ -673,12 +810,13 @@
"babel-plugin-transform-regenerator": "^6.24.1"
}
},
- "babel-register": {
+ "node_modules/babel-register": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz",
- "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=",
+ "integrity": "sha512-veliHlHX06wjaeY8xNITbveXSiI+ASFnOqvne/LaIJIqOWi2Ogmj91KOugEz/hoh/fwMhXNBJPCv8Xaz5CyM4A==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"babel-core": "^6.26.0",
"babel-runtime": "^6.26.0",
"core-js": "^2.5.0",
@@ -688,20 +826,21 @@
"source-map-support": "^0.4.15"
}
},
- "babel-runtime": {
+ "node_modules/babel-runtime": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
"integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
- "requires": {
+ "dependencies": {
"core-js": "^2.4.0",
"regenerator-runtime": "^0.11.0"
}
},
- "babel-template": {
+ "node_modules/babel-template": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz",
- "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=",
- "requires": {
+ "integrity": "sha512-PCOcLFW7/eazGUKIoqH97sO9A2UYMahsn/yRQ7uOk37iutwjq7ODtcTNF+iFDSHNfkctqsLRjLP7URnOx0T1fg==",
+ "license": "MIT",
+ "dependencies": {
"babel-runtime": "^6.26.0",
"babel-traverse": "^6.26.0",
"babel-types": "^6.26.0",
@@ -709,11 +848,12 @@
"lodash": "^4.17.4"
}
},
- "babel-traverse": {
+ "node_modules/babel-traverse": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz",
- "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=",
- "requires": {
+ "integrity": "sha512-iSxeXx7apsjCHe9c7n8VtRXGzI2Bk1rBSOJgCCjfyXb6v1aCqE1KSEpq/8SXuVN8Ka/Rh1WDTF0MDzkvTA4MIA==",
+ "license": "MIT",
+ "dependencies": {
"babel-code-frame": "^6.26.0",
"babel-messages": "^6.23.0",
"babel-runtime": "^6.26.0",
@@ -725,1441 +865,2355 @@
"lodash": "^4.17.4"
}
},
- "babel-types": {
+ "node_modules/babel-types": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz",
"integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.26.0",
"esutils": "^2.0.2",
"lodash": "^4.17.4",
"to-fast-properties": "^1.0.3"
}
},
- "babylon": {
+ "node_modules/babylon": {
"version": "6.18.0",
"resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz",
- "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ=="
+ "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
+ "bin": {
+ "babylon": "bin/babylon.js"
+ }
},
- "balanced-match": {
+ "node_modules/balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
"integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
},
- "bcrypt-pbkdf": {
+ "node_modules/bcrypt-pbkdf": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz",
"integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=",
"dev": true,
- "optional": true,
- "requires": {
+ "dependencies": {
"tweetnacl": "^0.14.3"
}
},
- "bluebird": {
+ "node_modules/bl": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz",
+ "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==",
+ "license": "MIT",
+ "dependencies": {
+ "readable-stream": "^2.3.5",
+ "safe-buffer": "^5.1.1"
+ }
+ },
+ "node_modules/bluebird": {
"version": "3.5.1",
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
"integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==",
"dev": true
},
- "body": {
+ "node_modules/body": {
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/body/-/body-5.1.0.tgz",
"integrity": "sha1-5LoM5BCkaTYyM2dgnstOZVMSUGk=",
"dev": true,
- "requires": {
+ "dependencies": {
"continuable-cache": "^0.3.1",
"error": "^7.0.0",
"raw-body": "~1.1.0",
"safe-json-parse": "~1.0.1"
+ }
+ },
+ "node_modules/body-parser": {
+ "version": "1.20.3",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
+ "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
+ "license": "MIT",
+ "dependencies": {
+ "bytes": "3.1.2",
+ "content-type": "~1.0.5",
+ "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.13.0",
+ "raw-body": "2.5.2",
+ "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/iconv-lite": {
+ "version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
+ "license": "MIT",
"dependencies": {
- "bytes": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
- "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=",
- "dev": true
- },
- "raw-body": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
- "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
- "dev": true,
- "requires": {
- "bytes": "1",
- "string_decoder": "0.10"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
- "dev": true
- }
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "body-parser": {
- "version": "1.18.3",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.3.tgz",
- "integrity": "sha1-WykhmP/dVTs6DyDe0FkrlWlVyLQ=",
- "requires": {
- "bytes": "3.0.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "~1.6.3",
- "iconv-lite": "0.4.23",
- "on-finished": "~2.3.0",
- "qs": "6.5.2",
- "raw-body": "2.3.3",
- "type-is": "~1.6.16"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
- "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- }
+ "node_modules/body-parser/node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/body/node_modules/bytes": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-1.0.0.tgz",
+ "integrity": "sha1-NWnt6Lo0MV+rmcPpLLBMciDeH6g=",
+ "dev": true
+ },
+ "node_modules/body/node_modules/raw-body": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-1.1.7.tgz",
+ "integrity": "sha1-HQJ8K/oRasxmI7yo8AAWVyqH1CU=",
+ "dev": true,
+ "dependencies": {
+ "bytes": "1",
+ "string_decoder": "0.10"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "brace-expansion": {
- "version": "1.1.8",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz",
- "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=",
- "requires": {
+ "node_modules/body/node_modules/string_decoder": {
+ "version": "0.10.31",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+ "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
+ "dev": true
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "license": "MIT",
+ "dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
}
},
- "browser-stdout": {
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.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=="
},
- "browserify-zlib": {
+ "node_modules/browserify-zlib": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz",
"integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=",
"dev": true,
- "requires": {
+ "dependencies": {
"pako": "~0.2.0"
}
},
- "bson": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.6.tgz",
- "integrity": "sha512-D8zmlb46xfuK2gGvKmUjIklQEouN2nQ0LEHHeZ/NoHM2LDiMk2EYzZ5Ntw/Urk+bgMDosOZxaRzXxvhI5TcAVQ=="
+ "node_modules/bson": {
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.6.tgz",
+ "integrity": "sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.6.19"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true,
+ "license": "MIT"
},
- "builtin-modules": {
+ "node_modules/builtin-modules": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
"integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
+ "node_modules/bytes": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "node_modules/call-bind-apply-helpers": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+ "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "camelcase": {
+ "node_modules/call-bound": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/call-bound/-/call-bound-1.0.4.tgz",
+ "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "get-intrinsic": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/camelcase": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "camelcase-keys": {
+ "node_modules/camelcase-keys": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
"dev": true,
- "requires": {
+ "dependencies": {
"camelcase": "^2.0.0",
"map-obj": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "caseless": {
+ "node_modules/caseless": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=",
"dev": true
},
- "center-align": {
+ "node_modules/center-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
"integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
"dev": true,
- "requires": {
+ "dependencies": {
"align-text": "^0.1.3",
"lazy-cache": "^1.0.3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "chai": {
+ "node_modules/chai": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
"integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
"dev": true,
- "requires": {
+ "dependencies": {
"assertion-error": "^1.0.1",
"deep-eql": "^0.1.3",
"type-detect": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4.0"
}
},
- "chalk": {
+ "node_modules/chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
- "requires": {
+ "dependencies": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "cliui": {
+ "node_modules/cliui": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
"integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
"dev": true,
- "requires": {
+ "dependencies": {
"center-align": "^0.1.1",
"right-align": "^0.1.1",
"wordwrap": "0.0.2"
}
},
- "co": {
- "version": "4.6.0",
- "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
- "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=",
- "dev": true
- },
- "coffeescript": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/coffeescript/-/coffeescript-1.10.0.tgz",
- "integrity": "sha1-56qDAZF+9iGzXYo580jc3R234z4=",
- "dev": true
- },
- "color-convert": {
- "version": "1.9.2",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.2.tgz",
- "integrity": "sha512-3NUJZdhMhcdPn8vJ9v2UQJoH0qqoGUkYTgFEPZaPjEtwmmKUfNV46zZmgB2M5M4DCEQHMaCfWHCxiBflLm04Tg==",
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
- "requires": {
- "color-name": "1.1.1"
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
}
},
- "color-name": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.1.tgz",
- "integrity": "sha1-SxQVMEz1ACjqgWQ2Q72C6gWANok=",
- "dev": true
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true,
+ "license": "MIT"
},
- "colors": {
+ "node_modules/colors": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
- "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
- "dev": true
+ "integrity": "sha512-ENwblkFQpqqia6b++zLD/KUWafYlVY/UNnAp7oz7LY7E924wmpye416wBOmvv/HMWzl8gL1kJlfvId/1Dg176w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.1.90"
+ }
},
- "combined-stream": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz",
- "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=",
+ "node_modules/combined-stream": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"delayed-stream": "~1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.8"
}
},
- "commander": {
+ "node_modules/commander": {
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz",
"integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=",
"dev": true,
- "requires": {
+ "dependencies": {
"graceful-readlink": ">= 1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.6.x"
}
},
- "concat-map": {
+ "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="
},
- "concat-stream": {
+ "node_modules/concat-stream": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.0.tgz",
"integrity": "sha1-CqxmL9Ur54lk1VMvaUeE5wEQrPc=",
"dev": true,
- "requires": {
+ "engines": [
+ "node >= 0.8"
+ ],
+ "dependencies": {
"inherits": "^2.0.3",
"readable-stream": "^2.2.2",
"typedarray": "^0.0.6"
}
},
- "config": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/config/-/config-1.30.0.tgz",
- "integrity": "sha1-HWCp81NIoTwXV5jThOgaWhbDum4=",
- "requires": {
- "json5": "0.4.0",
- "os-homedir": "1.0.2"
+ "node_modules/config": {
+ "version": "1.31.0",
+ "resolved": "https://registry.npmjs.org/config/-/config-1.31.0.tgz",
+ "integrity": "sha512-Ep/l9Rd1J9IPueztJfpbOqVzuKHQh4ZODMNt9xqTYdBBNRXbV4oTu34kCkkfdRVcDq0ohtpaeXGgb+c0LQxFRA==",
+ "license": "MIT",
+ "dependencies": {
+ "json5": "^1.0.1"
},
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/config/node_modules/json5": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz",
+ "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==",
+ "license": "MIT",
"dependencies": {
- "json5": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-0.4.0.tgz",
- "integrity": "sha1-BUNS5MTIDIbAkjh31EneF2pzLI0="
- }
+ "minimist": "^1.2.0"
+ },
+ "bin": {
+ "json5": "lib/cli.js"
}
},
- "content-disposition": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
- "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
+ "node_modules/config/node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "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=="
+ "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==",
+ "license": "MIT",
+ "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"
+ }
+ ],
+ "license": "MIT"
},
- "content-type-parser": {
+ "node_modules/content-type": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
+ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/content-type-parser": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz",
"integrity": "sha512-lM4l4CnMEwOLHAHr/P6MEZwZFPJFtAAKgL6pogbXmVZggIqXhdB6RbBtPOTsw2FcXwYhehRGERJmRrjOiIB8pQ==",
+ "deprecated": "Use whatwg-mimetype instead",
"dev": true
},
- "continuable-cache": {
+ "node_modules/continuable-cache": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/continuable-cache/-/continuable-cache-0.3.1.tgz",
"integrity": "sha1-vXJ6f67XfnH/OYWskzUakSczrQ8=",
"dev": true
},
- "convert-source-map": {
+ "node_modules/convert-source-map": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
"integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU=",
"dev": true
},
- "cookie": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
+ "node_modules/cookie": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
+ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "cookie-signature": {
+ "node_modules/cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
- "core-js": {
+ "node_modules/core-js": {
"version": "2.5.3",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.3.tgz",
- "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4="
+ "integrity": "sha1-isw4NFgk8W2DZbfJtCWRaOjtYD4=",
+ "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js."
},
- "core-util-is": {
+ "node_modules/core-util-is": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
- "dev": true
+ "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
},
- "cssom": {
+ "node_modules/cssom": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.2.tgz",
"integrity": "sha1-uANhcMefB6kP8vFuIihAJ6JDhIs=",
"dev": true
},
- "cssstyle": {
+ "node_modules/cssstyle": {
"version": "0.2.37",
"resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
"integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
"dev": true,
- "requires": {
+ "dependencies": {
"cssom": "0.3.x"
}
},
- "currently-unhandled": {
+ "node_modules/currently-unhandled": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz",
"integrity": "sha1-mI3zP+qxke95mmE2nddsF635V+o=",
"dev": true,
- "requires": {
+ "dependencies": {
"array-find-index": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "d": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
- "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
+ "node_modules/d": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/d/-/d-1.0.2.tgz",
+ "integrity": "sha512-MOqHvMWF9/9MX6nza0KgvFH4HpMU0EF5uUDXqX/BtxtU8NfB0QzRtJ8Oe/6SuS4kbhyzVJwjd97EA4PKrzJ8bw==",
"dev": true,
- "requires": {
- "es5-ext": "^0.10.9"
- }
+ "license": "ISC",
+ "dependencies": {
+ "es5-ext": "^0.10.64",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.12"
+ }
},
- "dashdash": {
+ "node_modules/dashdash": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
"integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
"dev": true,
- "requires": {
+ "dependencies": {
"assert-plus": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10"
}
},
- "data-uri-to-buffer": {
+ "node_modules/data-uri-to-buffer": {
"version": "0.0.4",
"resolved": "https://registry.npmjs.org/data-uri-to-buffer/-/data-uri-to-buffer-0.0.4.tgz",
"integrity": "sha1-RuE6udqOMJdFyNAc5UchPr2y/j8=",
"dev": true
},
- "dateformat": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-1.0.12.tgz",
- "integrity": "sha1-nxJLZ1lMk3/3BpMuSmQsyo27/uk=",
+ "node_modules/dateformat": {
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
+ "integrity": "sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==",
"dev": true,
- "requires": {
- "get-stdin": "^4.0.1",
- "meow": "^3.3.0"
+ "license": "MIT",
+ "engines": {
+ "node": "*"
}
},
- "debug": {
+ "node_modules/debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "requires": {
+ "dependencies": {
"ms": "2.0.0"
}
},
- "decamelize": {
+ "node_modules/decamelize": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "deep-eql": {
+ "node_modules/deep-eql": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
"integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
"dev": true,
- "requires": {
+ "dependencies": {
"type-detect": "0.1.1"
},
- "dependencies": {
- "type-detect": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
- "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
- "dev": true
- }
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/deep-eql/node_modules/type-detect": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
+ "integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
+ "dev": true,
+ "engines": {
+ "node": "*"
}
},
- "deep-is": {
+ "node_modules/deep-is": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
"integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
"dev": true
},
- "define-properties": {
+ "node_modules/define-properties": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz",
"integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=",
"dev": true,
- "requires": {
+ "dependencies": {
"foreach": "^2.0.5",
"object-keys": "^1.0.8"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "delayed-stream": {
+ "node_modules/delayed-stream": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
- "dev": true
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
+ "node_modules/denque": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/denque/-/denque-1.5.1.tgz",
+ "integrity": "sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.10"
+ }
},
- "destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
+ "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==",
+ "license": "MIT",
+ "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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
+ }
+ },
+ "node_modules/detect-file": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/detect-file/-/detect-file-1.0.0.tgz",
+ "integrity": "sha512-DtCOLG98P007x7wiiOmfI0fi3eIKyWiLTGJ2MDnVi/E04lWGbf+JzrRHMm0rgIIZJGtHpKpbVgLWHrv8xXpc3Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "detect-indent": {
+ "node_modules/detect-indent": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
"integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=",
"dev": true,
- "requires": {
+ "dependencies": {
"repeating": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "diff": {
+ "node_modules/diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
- "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="
+ "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+ "engines": {
+ "node": ">=0.3.1"
+ }
},
- "ecc-jsbn": {
+ "node_modules/dunder-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz",
+ "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "gopd": "^1.2.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/ecc-jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz",
"integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=",
"dev": true,
- "optional": true,
- "requires": {
+ "dependencies": {
"jsbn": "~0.1.0"
}
},
- "ee-first": {
+ "node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
+ "license": "MIT"
},
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
+ "node_modules/encodeurl": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
+ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "error": {
+ "node_modules/error": {
"version": "7.0.2",
"resolved": "https://registry.npmjs.org/error/-/error-7.0.2.tgz",
"integrity": "sha1-pfdf/02ZJhJt2sDqXcOOaJFTywI=",
"dev": true,
- "requires": {
+ "dependencies": {
"string-template": "~0.2.1",
"xtend": "~4.0.0"
}
},
- "error-ex": {
+ "node_modules/error-ex": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz",
"integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=",
"dev": true,
- "requires": {
+ "dependencies": {
"is-arrayish": "^0.2.1"
}
},
- "es5-ext": {
- "version": "0.10.38",
- "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.38.tgz",
- "integrity": "sha512-jCMyePo7AXbUESwbl8Qi01VSH2piY9s/a3rSU/5w/MlTIx8HPL1xn2InGN8ejt/xulcJgnTO7vqNtOAxzYd2Kg==",
+ "node_modules/es-define-property": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz",
+ "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-errors": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
+ "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es-object-atoms": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+ "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/es5-ext": {
+ "version": "0.10.64",
+ "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.64.tgz",
+ "integrity": "sha512-p2snDhiLaXe6dahss1LddxqEm+SkuDvV8dnIQG0MWjyHpcMNfXKPE+/Cc0y+PhxJX3A4xGNeFCj5oc0BUh6deg==",
"dev": true,
- "requires": {
- "es6-iterator": "~2.0.3",
- "es6-symbol": "~3.1.1"
+ "hasInstallScript": true,
+ "license": "ISC",
+ "dependencies": {
+ "es6-iterator": "^2.0.3",
+ "es6-symbol": "^3.1.3",
+ "esniff": "^2.0.1",
+ "next-tick": "^1.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
}
},
- "es6-iterator": {
+ "node_modules/es5-ext/node_modules/esniff": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/esniff/-/esniff-2.0.1.tgz",
+ "integrity": "sha512-kTUIGKQ/mDPFoJ0oVfcmyJn4iBDRptjNVIzwIFR7tqWXdVI9xfA2RMwY/gbSpJG3lkdWNEjLap/NqVHZiJsdfg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "d": "^1.0.1",
+ "es5-ext": "^0.10.62",
+ "event-emitter": "^0.3.5",
+ "type": "^2.7.2"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/es6-iterator": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
"dev": true,
- "requires": {
+ "dependencies": {
"d": "1",
"es5-ext": "^0.10.35",
"es6-symbol": "^3.1.1"
}
},
- "es6-symbol": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
- "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
+ "node_modules/es6-symbol": {
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.4.tgz",
+ "integrity": "sha512-U9bFFjX8tFiATgtkJ1zg25+KviIXpgRvRHS8sau3GfhVzThRQrOeksPeT0BWW2MNZs1OEWJ1DPXOQMn0KKRkvg==",
"dev": true,
- "requires": {
- "d": "1",
- "es5-ext": "~0.10.14"
+ "license": "ISC",
+ "dependencies": {
+ "d": "^1.0.2",
+ "ext": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.12"
}
},
- "es6-template-strings": {
+ "node_modules/es6-template-strings": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/es6-template-strings/-/es6-template-strings-2.0.1.tgz",
"integrity": "sha1-sWbGpiVi9Hi7d3X2ypYQOlmbSyw=",
"dev": true,
- "requires": {
+ "dependencies": {
"es5-ext": "^0.10.12",
"esniff": "^1.1"
}
},
- "escape-html": {
+ "node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
+ "license": "MIT"
},
- "escape-string-regexp": {
+ "node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
},
- "escodegen": {
+ "node_modules/escodegen": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.0.tgz",
"integrity": "sha512-v0MYvNQ32bzwoG2OSFzWAkuahDQHK92JBN0pTAALJ4RIxEZe766QJPDR8Hqy7XNUy5K3fnVL76OqYAdc4TZEIw==",
"dev": true,
- "requires": {
+ "dependencies": {
"esprima": "^3.1.3",
"estraverse": "^4.2.0",
"esutils": "^2.0.2",
- "optionator": "^0.8.1",
+ "optionator": "^0.8.1"
+ },
+ "bin": {
+ "escodegen": "bin/escodegen.js",
+ "esgenerate": "bin/esgenerate.js"
+ },
+ "engines": {
+ "node": ">=0.12.0"
+ },
+ "optionalDependencies": {
"source-map": "~0.5.6"
+ }
+ },
+ "node_modules/escodegen/node_modules/esprima": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+ "dev": true,
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
},
- "dependencies": {
- "esprima": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
- "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
- "dev": true
- }
+ "engines": {
+ "node": ">=4"
}
},
- "esniff": {
+ "node_modules/esniff": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/esniff/-/esniff-1.1.0.tgz",
"integrity": "sha1-xmhJIp+RRk3t4uDUAgHtar9l8qw=",
"dev": true,
- "requires": {
+ "dependencies": {
"d": "1",
"es5-ext": "^0.10.12"
}
},
- "esprima": {
- "version": "2.7.3",
- "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
- "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
- "dev": true
+ "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==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
- "estraverse": {
+ "node_modules/estraverse": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
"integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "esutils": {
+ "node_modules/esutils": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
- "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+ "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "etag": {
+ "node_modules/etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "eventemitter2": {
+ "node_modules/event-emitter": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
+ "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "d": "1",
+ "es5-ext": "~0.10.14"
+ }
+ },
+ "node_modules/eventemitter2": {
"version": "0.4.14",
"resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
"integrity": "sha1-j2G3XN4BKy6esoTUVFWDtWQ7Yas=",
"dev": true
},
- "exit": {
+ "node_modules/exit": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
- "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=",
- "dev": true
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expand-tilde": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz",
+ "integrity": "sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "homedir-polyfill": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "express": {
- "version": "4.16.3",
- "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
- "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
- "requires": {
- "accepts": "~1.3.5",
+ "node_modules/express": {
+ "version": "4.21.2",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz",
+ "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==",
+ "license": "MIT",
+ "dependencies": {
+ "accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.18.2",
- "content-disposition": "0.5.2",
+ "body-parser": "1.20.3",
+ "content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.3.1",
+ "cookie": "0.7.1",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "~1.1.2",
- "encodeurl": "~1.0.2",
+ "depd": "2.0.0",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "1.1.1",
+ "finalhandler": "1.3.1",
"fresh": "0.5.2",
- "merge-descriptors": "1.0.1",
+ "http-errors": "2.0.0",
+ "merge-descriptors": "1.0.3",
"methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.2",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.3",
- "qs": "6.5.1",
- "range-parser": "~1.2.0",
- "safe-buffer": "5.1.1",
- "send": "0.16.2",
- "serve-static": "1.13.2",
- "setprototypeof": "1.1.0",
- "statuses": "~1.4.0",
- "type-is": "~1.6.16",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "path-to-regexp": "0.1.12",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.13.0",
+ "range-parser": "~1.2.1",
+ "safe-buffer": "5.2.1",
+ "send": "0.19.0",
+ "serve-static": "1.16.2",
+ "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"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/express"
+ }
+ },
+ "node_modules/express/node_modules/qs": {
+ "version": "6.13.0",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
+ "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
+ "license": "BSD-3-Clause",
"dependencies": {
- "body-parser": {
- "version": "1.18.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
- "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
- "requires": {
- "bytes": "3.0.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.1",
- "http-errors": "~1.6.2",
- "iconv-lite": "0.4.19",
- "on-finished": "~2.3.0",
- "qs": "6.5.1",
- "raw-body": "2.3.2",
- "type-is": "~1.6.15"
- }
- },
- "qs": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
- "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
+ "side-channel": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=0.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "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"
},
- "raw-body": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
- "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
- "requires": {
- "bytes": "3.0.0",
- "http-errors": "1.6.2",
- "iconv-lite": "0.4.19",
- "unpipe": "1.0.0"
- },
- "dependencies": {
- "depd": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
- "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
- },
- "http-errors": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
- "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
- "requires": {
- "depd": "1.1.1",
- "inherits": "2.0.3",
- "setprototypeof": "1.0.3",
- "statuses": ">= 1.3.1 < 2"
- }
- },
- "setprototypeof": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
- "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
- }
- }
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
},
- "statuses": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
- "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
}
+ ],
+ "license": "MIT"
+ },
+ "node_modules/ext": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz",
+ "integrity": "sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "type": "^2.7.2"
}
},
- "extend": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
- "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=",
- "dev": true
+ "node_modules/extend": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true,
+ "license": "MIT"
},
- "extsprintf": {
+ "node_modules/extsprintf": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
"integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
- "dev": true
- },
- "fast-deep-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz",
- "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=",
- "dev": true
+ "dev": true,
+ "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==",
+ "dev": true,
+ "license": "MIT"
},
- "fast-json-stable-stringify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
- "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=",
- "dev": true
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true,
+ "license": "MIT"
},
- "fast-levenshtein": {
+ "node_modules/fast-levenshtein": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
"dev": true
},
- "faye-websocket": {
+ "node_modules/faye-websocket": {
"version": "0.10.0",
"resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
"integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
"dev": true,
- "requires": {
+ "dependencies": {
"websocket-driver": ">=0.5.1"
+ },
+ "engines": {
+ "node": ">=0.4.0"
}
},
- "figures": {
+ "node_modules/figures": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/figures/-/figures-1.7.0.tgz",
"integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=",
"dev": true,
- "requires": {
+ "dependencies": {
"escape-string-regexp": "^1.0.5",
"object-assign": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "file-sync-cmp": {
+ "node_modules/file-sync-cmp": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz",
"integrity": "sha1-peeo/7+kk7Q7kju9TKiaU7Y7YSs=",
"dev": true
},
- "finalhandler": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
- "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
- "requires": {
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/finalhandler": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
+ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
+ "license": "MIT",
+ "dependencies": {
"debug": "2.6.9",
- "encodeurl": "~1.0.2",
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.2",
- "statuses": "~1.4.0",
+ "on-finished": "2.4.1",
+ "parseurl": "~1.3.3",
+ "statuses": "2.0.1",
"unpipe": "~1.0.0"
},
- "dependencies": {
- "statuses": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
- "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
- }
+ "engines": {
+ "node": ">= 0.8"
}
},
- "find-up": {
+ "node_modules/find-up": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
"dev": true,
- "requires": {
+ "dependencies": {
"path-exists": "^2.0.0",
"pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "findup-sync": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz",
- "integrity": "sha1-N5MKpdgWt3fANEXhlmzGeQpMCxY=",
- "dev": true,
- "requires": {
- "glob": "~5.0.0"
- },
- "dependencies": {
- "glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
- "dev": true,
- "requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
+ "node_modules/findup-sync": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-4.0.0.tgz",
+ "integrity": "sha512-6jvvn/12IC4quLBL1KNokxC7wWTvYncaVUYSoxWw7YykPLuRrnv4qdHcSOywOI5RpkOVGeQRtWM8/q+G6W6qfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.0",
+ "micromatch": "^4.0.2",
+ "resolve-dir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/fined": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz",
+ "integrity": "sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "expand-tilde": "^2.0.2",
+ "is-plain-object": "^2.0.3",
+ "object.defaults": "^1.1.0",
+ "object.pick": "^1.2.0",
+ "parse-filepath": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/flagged-respawn": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz",
+ "integrity": "sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/for-own": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/for-own/-/for-own-1.0.0.tgz",
+ "integrity": "sha512-0OABksIGrxKK8K4kynWkQ7y1zounQxP+CWnyclVwj81KW3vlLlGUx57DKGcP/LH216GzqnstnPocF16Nxs0Ycg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "for-in": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "foreach": {
+ "node_modules/foreach": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
"integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
"dev": true
},
- "forever-agent": {
+ "node_modules/forever-agent": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
"integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
},
- "form-data": {
- "version": "2.3.1",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz",
- "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=",
+ "node_modules/form-data": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"asynckit": "^0.4.0",
- "combined-stream": "^1.0.5",
+ "combined-stream": "^1.0.6",
"mime-types": "^2.1.12"
+ },
+ "engines": {
+ "node": ">= 0.12"
}
},
- "forwarded": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
+ "node_modules/forwarded": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "fresh": {
+ "node_modules/fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "fs": {
+ "node_modules/fs": {
"version": "0.0.1-security",
"resolved": "https://registry.npmjs.org/fs/-/fs-0.0.1-security.tgz",
"integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ="
},
- "fs.realpath": {
+ "node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
- "function-bind": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
- "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
- "dev": true
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "gaze": {
+ "node_modules/gaze": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
"integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
"dev": true,
- "requires": {
+ "dependencies": {
"globule": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
}
},
- "get-stdin": {
+ "node_modules/get-intrinsic": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+ "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bind-apply-helpers": "^1.0.2",
+ "es-define-property": "^1.0.1",
+ "es-errors": "^1.3.0",
+ "es-object-atoms": "^1.1.1",
+ "function-bind": "^1.1.2",
+ "get-proto": "^1.0.1",
+ "gopd": "^1.2.0",
+ "has-symbols": "^1.1.0",
+ "hasown": "^2.0.2",
+ "math-intrinsics": "^1.1.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/get-proto": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz",
+ "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+ "license": "MIT",
+ "dependencies": {
+ "dunder-proto": "^1.0.1",
+ "es-object-atoms": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/get-stdin": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "getobject": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/getobject/-/getobject-0.1.0.tgz",
- "integrity": "sha1-BHpEl4n6Fg0Bj1SG7ZEyC27HiFw=",
- "dev": true
+ "node_modules/getobject": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/getobject/-/getobject-1.0.2.tgz",
+ "integrity": "sha512-2zblDBaFcb3rB4rF77XVnuINOE2h2k/OnqXAiy0IrTxUfV1iFp3la33oAQVY9pCpWU268WFYVt2t71hlMuLsOg==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ }
},
- "getpass": {
+ "node_modules/getpass": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
"integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
"dev": true,
- "requires": {
+ "dependencies": {
"assert-plus": "^1.0.0"
}
},
- "glob": {
- "version": "7.1.1",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz",
- "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=",
+ "node_modules/glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
"dev": true,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
- "minimatch": "^3.0.2",
+ "minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/global-modules": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz",
+ "integrity": "sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "global-prefix": "^1.0.1",
+ "is-windows": "^1.0.1",
+ "resolve-dir": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "globals": {
+ "node_modules/global-prefix": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-1.0.2.tgz",
+ "integrity": "sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "expand-tilde": "^2.0.2",
+ "homedir-polyfill": "^1.0.1",
+ "ini": "^1.3.4",
+ "is-windows": "^1.0.1",
+ "which": "^1.2.14"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/global-prefix/node_modules/which": {
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "which": "bin/which"
+ }
+ },
+ "node_modules/globals": {
"version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
- "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ=="
+ "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "globule": {
+ "node_modules/globule": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.0.tgz",
"integrity": "sha1-HcScaCLdnoovoAuiopUAboZkvQk=",
"dev": true,
- "requires": {
+ "dependencies": {
"glob": "~7.1.1",
"lodash": "~4.17.4",
"minimatch": "~3.0.2"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/gopd": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz",
+ "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
- "graceful-fs": {
+ "node_modules/graceful-fs": {
"version": "4.1.11",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz",
"integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "graceful-readlink": {
+ "node_modules/graceful-readlink": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
"integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=",
"dev": true
},
- "growl": {
+ "node_modules/growl": {
"version": "1.10.5",
"resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
- "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
+ "engines": {
+ "node": ">=4.x"
+ }
},
- "grunt": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.0.3.tgz",
- "integrity": "sha512-/JzmZNPfKorlCrrmxWqQO4JVodO+DVd5XX4DkocL/1WlLlKVLE9+SdEIempOAxDhWPysLle6afvn/hg7Ck2k9g==",
+ "node_modules/grunt": {
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/grunt/-/grunt-1.6.1.tgz",
+ "integrity": "sha512-/ABUy3gYWu5iBmrUSRBP97JLpQUm0GgVveDCp6t3yRNIoltIYw7rEj3g5y1o2PGPR2vfTRGa7WC/LZHLTXnEzA==",
"dev": true,
- "requires": {
- "coffeescript": "~1.10.0",
- "dateformat": "~1.0.12",
+ "license": "MIT",
+ "dependencies": {
+ "dateformat": "~4.6.2",
"eventemitter2": "~0.4.13",
- "exit": "~0.1.1",
- "findup-sync": "~0.3.0",
- "glob": "~7.0.0",
- "grunt-cli": "~1.2.0",
- "grunt-known-options": "~1.1.0",
- "grunt-legacy-log": "~2.0.0",
- "grunt-legacy-util": "~1.1.1",
- "iconv-lite": "~0.4.13",
- "js-yaml": "~3.5.2",
- "minimatch": "~3.0.2",
- "mkdirp": "~0.5.1",
- "nopt": "~3.0.6",
- "path-is-absolute": "~1.0.0",
- "rimraf": "~2.6.2"
- },
- "dependencies": {
- "glob": {
- "version": "7.0.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.0.6.tgz",
- "integrity": "sha1-IRuvr0nlJbjNkyYNFKsTYVKz9Xo=",
- "dev": true,
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.2",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- }
+ "exit": "~0.1.2",
+ "findup-sync": "~5.0.0",
+ "glob": "~7.1.6",
+ "grunt-cli": "~1.4.3",
+ "grunt-known-options": "~2.0.0",
+ "grunt-legacy-log": "~3.0.0",
+ "grunt-legacy-util": "~2.0.1",
+ "iconv-lite": "~0.6.3",
+ "js-yaml": "~3.14.0",
+ "minimatch": "~3.0.4",
+ "nopt": "~3.0.6"
+ },
+ "bin": {
+ "grunt": "bin/grunt"
+ },
+ "engines": {
+ "node": ">=16"
}
},
- "grunt-babel": {
+ "node_modules/grunt-babel": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/grunt-babel/-/grunt-babel-6.0.0.tgz",
- "integrity": "sha1-N4GJtIfeEWjExKn8iN1gBbNd+WA=",
+ "integrity": "sha512-v5uRRqAMqZc0cOe7b4/i5lW6fQTNXNQ5/GnVmaGFXW7hO+PiGvkHFUQ18hisf+KBl+wrb2gLjYk/xH+2OaRvmQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"babel-core": "^6.0.12"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "grunt-cli": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz",
- "integrity": "sha1-VisRnrsGndtGSs4oRVAb6Xs1tqg=",
+ "node_modules/grunt-cli": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.4.3.tgz",
+ "integrity": "sha512-9Dtx/AhVeB4LYzsViCjUQkd0Kw0McN2gYpdmGYKtE2a5Yt7v1Q+HYZVWhqXc/kGnxlMtqKDxSwotiGeFmkrCoQ==",
"dev": true,
- "requires": {
- "findup-sync": "~0.3.0",
- "grunt-known-options": "~1.1.0",
- "nopt": "~3.0.6",
- "resolve": "~1.1.0"
+ "license": "MIT",
+ "dependencies": {
+ "grunt-known-options": "~2.0.0",
+ "interpret": "~1.1.0",
+ "liftup": "~3.0.1",
+ "nopt": "~4.0.1",
+ "v8flags": "~3.2.0"
+ },
+ "bin": {
+ "grunt": "bin/grunt"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/grunt-cli/node_modules/nopt": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz",
+ "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "abbrev": "1",
+ "osenv": "^0.1.4"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
}
},
- "grunt-contrib-clean": {
+ "node_modules/grunt-contrib-clean": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-clean/-/grunt-contrib-clean-1.1.0.tgz",
"integrity": "sha1-Vkq/LQN4qYOhW54/MO51tzjEBjg=",
"dev": true,
- "requires": {
+ "dependencies": {
"async": "^1.5.2",
"rimraf": "^2.5.1"
},
+ "engines": {
+ "node": ">= 0.10.0"
+ },
+ "peerDependencies": {
+ "grunt": ">=0.4.5"
+ }
+ },
+ "node_modules/grunt-contrib-clean/node_modules/rimraf": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
+ "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dev": true,
"dependencies": {
- "rimraf": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
- "dev": true,
- "requires": {
- "glob": "^7.0.5"
- }
- }
+ "glob": "^7.0.5"
+ },
+ "bin": {
+ "rimraf": "bin.js"
}
},
- "grunt-contrib-copy": {
+ "node_modules/grunt-contrib-copy": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-copy/-/grunt-contrib-copy-1.0.0.tgz",
"integrity": "sha1-cGDGWB6QS4qw0A8HbgqPbj58NXM=",
"dev": true,
- "requires": {
+ "dependencies": {
"chalk": "^1.1.1",
"file-sync-cmp": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "grunt-contrib-uglify": {
+ "node_modules/grunt-contrib-uglify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-uglify/-/grunt-contrib-uglify-2.3.0.tgz",
"integrity": "sha1-s9AmDr3WzvoS/y+Onh4ln33kIW8=",
"dev": true,
- "requires": {
+ "dependencies": {
"chalk": "^1.0.0",
"maxmin": "^1.1.0",
"object.assign": "^4.0.4",
"uglify-js": "~2.8.21",
"uri-path": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "grunt-contrib-watch": {
+ "node_modules/grunt-contrib-watch": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/grunt-contrib-watch/-/grunt-contrib-watch-1.1.0.tgz",
"integrity": "sha512-yGweN+0DW5yM+oo58fRu/XIRrPcn3r4tQx+nL7eMRwjpvk+rQY6R8o94BPK0i2UhTg9FN21hS+m8vR8v9vXfeg==",
"dev": true,
- "requires": {
+ "dependencies": {
"async": "^2.6.0",
"gaze": "^1.1.0",
"lodash": "^4.17.10",
"tiny-lr": "^1.1.1"
},
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/grunt-contrib-watch/node_modules/async": {
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
+ "dev": true,
+ "license": "MIT",
"dependencies": {
- "async": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
- "integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
- "dev": true,
- "requires": {
- "lodash": "^4.17.10"
- }
- }
+ "lodash": "^4.17.14"
}
},
- "grunt-execute": {
+ "node_modules/grunt-execute": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/grunt-execute/-/grunt-execute-0.2.2.tgz",
"integrity": "sha1-TpRf5XlZzA3neZCDtrQq7ZYWNQo=",
- "dev": true
- },
- "grunt-known-options": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz",
- "integrity": "sha1-pCdO6zL6dl2lp6OxcSYXzjsUQUk=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ },
+ "peerDependencies": {
+ "grunt": "~0.4.1"
+ }
},
- "grunt-legacy-log": {
+ "node_modules/grunt-known-options": {
"version": "2.0.0",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-2.0.0.tgz",
- "integrity": "sha512-1m3+5QvDYfR1ltr8hjiaiNjddxGdQWcH0rw1iKKiQnF0+xtgTazirSTGu68RchPyh1OBng1bBUjLmX8q9NpoCw==",
+ "resolved": "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-2.0.0.tgz",
+ "integrity": "sha512-GD7cTz0I4SAede1/+pAbmJRG44zFLPipVtdL9o3vqx9IEyb7b4/Y3s7r6ofI3CchR5GvYJ+8buCSioDv5dQLiA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/grunt-legacy-log": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log/-/grunt-legacy-log-3.0.0.tgz",
+ "integrity": "sha512-GHZQzZmhyq0u3hr7aHW4qUH0xDzwp2YXldLPZTCjlOeGscAOWWPftZG3XioW8MasGp+OBRIu39LFx14SLjXRcA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"colors": "~1.1.2",
- "grunt-legacy-log-utils": "~2.0.0",
+ "grunt-legacy-log-utils": "~2.1.0",
"hooker": "~0.2.3",
- "lodash": "~4.17.5"
+ "lodash": "~4.17.19"
+ },
+ "engines": {
+ "node": ">= 0.10.0"
}
},
- "grunt-legacy-log-utils": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.0.1.tgz",
- "integrity": "sha512-o7uHyO/J+i2tXG8r2bZNlVk20vlIFJ9IEYyHMCQGfWYru8Jv3wTqKZzvV30YW9rWEjq0eP3cflQ1qWojIe9VFA==",
- "dev": true,
- "requires": {
- "chalk": "~2.4.1",
- "lodash": "~4.17.10"
- },
- "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.1",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
- "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==",
- "dev": true,
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
- "dev": true
- },
- "supports-color": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
- "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
- "dev": true,
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
+ "node_modules/grunt-legacy-log-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-log-utils/-/grunt-legacy-log-utils-2.1.0.tgz",
+ "integrity": "sha512-lwquaPXJtKQk0rUM1IQAop5noEpwFqOXasVoedLeNzaibf/OPWjKYvvdqnEHNmU+0T0CaReAXIbGo747ZD+Aaw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "~4.1.0",
+ "lodash": "~4.17.19"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "grunt-legacy-util": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-1.1.1.tgz",
- "integrity": "sha512-9zyA29w/fBe6BIfjGENndwoe1Uy31BIXxTH3s8mga0Z5Bz2Sp4UCjkeyv2tI449ymkx3x26B+46FV4fXEddl5A==",
+ "node_modules/grunt-legacy-log-utils/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/grunt-legacy-log-utils/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,
+ "license": "MIT",
+ "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/grunt-legacy-log-utils/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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/grunt-legacy-log-utils/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,
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/grunt-legacy-util": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/grunt-legacy-util/-/grunt-legacy-util-2.0.1.tgz",
+ "integrity": "sha512-2bQiD4fzXqX8rhNdXkAywCadeqiPiay0oQny77wA2F3WF4grPJXCvAcyoWUJV+po/b15glGkxuSiQCK299UC2w==",
"dev": true,
- "requires": {
- "async": "~1.5.2",
- "exit": "~0.1.1",
- "getobject": "~0.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "async": "~3.2.0",
+ "exit": "~0.1.2",
+ "getobject": "~1.0.0",
"hooker": "~0.2.3",
- "lodash": "~4.17.10",
- "underscore.string": "~3.3.4",
- "which": "~1.3.0"
+ "lodash": "~4.17.21",
+ "underscore.string": "~3.3.5",
+ "which": "~2.0.2"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "grunt-mocha-test": {
+ "node_modules/grunt-legacy-util/node_modules/async": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz",
+ "integrity": "sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/grunt-mocha-test": {
"version": "0.13.3",
"resolved": "https://registry.npmjs.org/grunt-mocha-test/-/grunt-mocha-test-0.13.3.tgz",
"integrity": "sha512-zQGEsi3d+ViPPi7/4jcj78afKKAKiAA5n61pknQYi25Ugik+aNOuRmiOkmb8mN2CeG8YxT+YdT1H1Q7B/eNkoQ==",
"dev": true,
- "requires": {
+ "dependencies": {
"hooker": "^0.2.3",
"mkdirp": "^0.5.0"
+ },
+ "engines": {
+ "node": ">= 0.10.4"
+ },
+ "peerDependencies": {
+ "mocha": ">=1.20.0"
}
},
- "grunt-systemjs-builder": {
+ "node_modules/grunt-systemjs-builder": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/grunt-systemjs-builder/-/grunt-systemjs-builder-1.0.0.tgz",
"integrity": "sha1-XY58vspbNeK3tr0ALpqdfgPX3s0=",
"dev": true,
- "requires": {
+ "dependencies": {
"systemjs-builder": "0.14.11 - 0.16.x"
+ },
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/grunt/node_modules/findup-sync": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz",
+ "integrity": "sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "detect-file": "^1.0.0",
+ "is-glob": "^4.0.3",
+ "micromatch": "^4.0.4",
+ "resolve-dir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 10.13.0"
+ }
+ },
+ "node_modules/grunt/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "gzip-size": {
+ "node_modules/gzip-size": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-1.0.0.tgz",
"integrity": "sha1-Zs+LEBBHInuVus5uodoMF37Vwi8=",
"dev": true,
- "requires": {
+ "dependencies": {
"browserify-zlib": "^0.1.4",
"concat-stream": "^1.4.1"
+ },
+ "bin": {
+ "gzip-size": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "har-schema": {
+ "node_modules/har-schema": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
- "dev": true
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=4"
+ }
},
- "har-validator": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz",
- "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=",
+ "node_modules/har-validator": {
+ "version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "deprecated": "this library is no longer supported",
"dev": true,
- "requires": {
- "ajv": "^5.1.0",
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.3",
"har-schema": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
}
},
- "has-ansi": {
+ "node_modules/has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
- "requires": {
+ "dependencies": {
"ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "has-flag": {
+ "node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
+ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+ "engines": {
+ "node": ">=4"
+ }
},
- "has-symbols": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz",
- "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=",
- "dev": true
+ "node_modules/has-symbols": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz",
+ "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "he": {
+ "node_modules/he": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
- "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
+ "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
+ "bin": {
+ "he": "bin/he"
+ }
},
- "home-or-tmp": {
+ "node_modules/home-or-tmp": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz",
"integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=",
"dev": true,
- "requires": {
+ "dependencies": {
"os-homedir": "^1.0.0",
"os-tmpdir": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/homedir-polyfill": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz",
+ "integrity": "sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parse-passwd": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "hooker": {
+ "node_modules/hooker": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/hooker/-/hooker-0.2.3.tgz",
"integrity": "sha1-uDT3I8xKJCqmWWNFnfbZhMXT2Vk=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
},
- "hosted-git-info": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz",
- "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==",
- "dev": true
+ "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,
+ "license": "ISC"
},
- "html-encoding-sniffer": {
+ "node_modules/html-encoding-sniffer": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz",
"integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==",
"dev": true,
- "requires": {
+ "dependencies": {
"whatwg-encoding": "^1.0.1"
}
},
- "http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
+ "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==",
+ "license": "MIT",
+ "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"
}
},
- "http-parser-js": {
+ "node_modules/http-parser-js": {
"version": "0.4.13",
"resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz",
"integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc=",
"dev": true
},
- "http-signature": {
+ "node_modules/http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
"integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
"dev": true,
- "requires": {
+ "dependencies": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
"sshpk": "^1.7.0"
+ },
+ "engines": {
+ "node": ">=0.8",
+ "npm": ">=1.3.7"
}
},
- "iconv-lite": {
+ "node_modules/iconv-lite": {
"version": "0.4.19",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
+ "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "indent-string": {
+ "node_modules/indent-string": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
"dev": true,
- "requires": {
+ "dependencies": {
"repeating": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "inflight": {
+ "node_modules/inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "dependencies": {
"once": "^1.3.0",
"wrappy": "1"
}
},
- "inherits": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
- "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/ini": {
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/interpret": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
+ "integrity": "sha512-CLM8SNMDu7C5psFCn6Wg/tgpj/bKAg7hc2gWqcuR9OD5Ft9PhBpIu8PLicPeis+xDd6YX2ncI8MCA64I9tftIA==",
+ "dev": true,
+ "license": "MIT"
},
- "invariant": {
+ "node_modules/invariant": {
"version": "2.2.2",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz",
"integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=",
- "requires": {
+ "dependencies": {
"loose-envify": "^1.0.0"
}
},
- "ipaddr.js": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz",
- "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs="
+ "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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/is-absolute": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz",
+ "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-relative": "^1.0.0",
+ "is-windows": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "is-arrayish": {
+ "node_modules/is-arrayish": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
"integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=",
"dev": true
},
- "is-buffer": {
+ "node_modules/is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==",
"dev": true
},
- "is-builtin-module": {
+ "node_modules/is-builtin-module": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz",
"integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=",
"dev": true,
- "requires": {
+ "dependencies": {
"builtin-modules": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-finite": {
+ "node_modules/is-finite": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz",
"integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=",
"dev": true,
- "requires": {
+ "dependencies": {
"number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-plain-object": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-relative": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-relative/-/is-relative-1.0.0.tgz",
+ "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-unc-path": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "is-typedarray": {
+ "node_modules/is-typedarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
"integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=",
"dev": true
},
- "is-utf8": {
+ "node_modules/is-unc-path": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-unc-path/-/is-unc-path-1.0.0.tgz",
+ "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "unc-path-regex": "^0.1.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-utf8": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz",
"integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=",
"dev": true
},
- "isarray": {
+ "node_modules/is-windows": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/isarray": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
- "dev": true
+ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
},
- "isexe": {
+ "node_modules/isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
- "dev": true
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/isobject": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "isstream": {
+ "node_modules/isstream": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=",
"dev": true
},
- "js-tokens": {
+ "node_modules/js-tokens": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls="
},
- "js-yaml": {
- "version": "3.5.5",
- "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.5.5.tgz",
- "integrity": "sha1-A3fDgBfKvHMisNH7zSWkkWQfL74=",
+ "node_modules/js-yaml": {
+ "version": "3.14.2",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.2.tgz",
+ "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==",
"dev": true,
- "requires": {
- "argparse": "^1.0.2",
- "esprima": "^2.6.0"
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
}
},
- "jsbn": {
+ "node_modules/jsbn": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
"integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=",
- "dev": true,
- "optional": true
+ "dev": true
},
- "jsdom": {
+ "node_modules/jsdom": {
"version": "9.12.0",
"resolved": "https://registry.npmjs.org/jsdom/-/jsdom-9.12.0.tgz",
- "integrity": "sha1-6MVG//ywbADUgzyoRBD+1/igl9Q=",
+ "integrity": "sha512-Qw4oqNxo4LyzkSqVIyCnEltTc4xV3g1GBaI88AvYTesWzmWHUSoMNmhBjUBa+6ldXIBJS9xoeLNJPfUAykTyxw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"abab": "^1.0.3",
"acorn": "^4.0.4",
"acorn-globals": "^3.1.0",
@@ -2181,171 +3235,291 @@
"xml-name-validator": "^2.0.1"
}
},
- "jsesc": {
+ "node_modules/jsesc": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0="
+ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ }
},
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=",
- "dev": true
+ "node_modules/json-schema": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true,
+ "license": "(AFL-2.1 OR BSD-3-Clause)"
},
- "json-schema-traverse": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz",
- "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=",
- "dev": true
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
},
- "json-stringify-safe": {
+ "node_modules/json-stringify-safe": {
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"dev": true
},
- "json5": {
+ "node_modules/json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=",
- "dev": true
+ "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ }
},
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+ "node_modules/jsprim": {
+ "version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
- "json-schema": "0.2.3",
+ "json-schema": "0.4.0",
"verror": "1.10.0"
+ },
+ "engines": {
+ "node": ">=0.6.0"
}
},
- "kind-of": {
+ "node_modules/kind-of": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
"integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
"dev": true,
- "requires": {
+ "dependencies": {
"is-buffer": "^1.1.5"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "lazy-cache": {
+ "node_modules/lazy-cache": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
"integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "levn": {
+ "node_modules/levn": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
"integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
"dev": true,
- "requires": {
+ "dependencies": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/liftup": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/liftup/-/liftup-3.0.1.tgz",
+ "integrity": "sha512-yRHaiQDizWSzoXk3APcA71eOI/UuhEkNN9DiW2Tt44mhYzX4joFoCZlxsSOF7RyeLlfqzFLQI1ngFq3ggMPhOw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "extend": "^3.0.2",
+ "findup-sync": "^4.0.0",
+ "fined": "^1.2.0",
+ "flagged-respawn": "^1.0.1",
+ "is-plain-object": "^2.0.4",
+ "object.map": "^1.0.1",
+ "rechoir": "^0.7.0",
+ "resolve": "^1.19.0"
+ },
+ "engines": {
+ "node": ">=10"
}
},
- "livereload-js": {
+ "node_modules/livereload-js": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/livereload-js/-/livereload-js-2.3.0.tgz",
"integrity": "sha512-j1R0/FeGa64Y+NmqfZhyoVRzcFlOZ8sNlKzHjh4VvLULFACZhn68XrX5DFg2FhMvSMJmROuFxRSa560ECWKBMg==",
"dev": true
},
- "load-grunt-tasks": {
+ "node_modules/load-grunt-tasks": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/load-grunt-tasks/-/load-grunt-tasks-3.5.2.tgz",
"integrity": "sha1-ByhWEYD9IP+KaSdQWFL8WKrqDIg=",
"dev": true,
- "requires": {
+ "dependencies": {
"arrify": "^1.0.0",
"multimatch": "^2.0.0",
"pkg-up": "^1.0.0",
"resolve-pkg": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ },
+ "peerDependencies": {
+ "grunt": ">=0.4.0"
}
},
- "load-json-file": {
+ "node_modules/load-json-file": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
"dev": true,
- "requires": {
+ "dependencies": {
"graceful-fs": "^4.1.2",
"parse-json": "^2.2.0",
"pify": "^2.0.0",
"pinkie-promise": "^2.0.0",
"strip-bom": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "lodash": {
- "version": "4.17.10",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.10.tgz",
- "integrity": "sha512-UejweD1pDoXu+AD825lWwp4ZGtSwgnpZxb3JDViD7StjQz+Nb/6l093lx4OQ0foGWNRoc19mWy7BzL+UAK2iVg=="
+ "node_modules/lodash": {
+ "version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "license": "MIT"
},
- "lodash.isboolean": {
+ "node_modules/lodash.isboolean": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz",
"integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY="
},
- "lodash.isempty": {
+ "node_modules/lodash.isempty": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/lodash.isempty/-/lodash.isempty-4.4.0.tgz",
"integrity": "sha1-b4bL7di+TsmHvpqvM8loTbGzHn4="
},
- "longest": {
+ "node_modules/longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
"integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "loose-envify": {
+ "node_modules/loose-envify": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz",
"integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=",
- "requires": {
+ "dependencies": {
"js-tokens": "^3.0.0"
+ },
+ "bin": {
+ "loose-envify": "cli.js"
}
},
- "loud-rejection": {
+ "node_modules/loud-rejection": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz",
"integrity": "sha1-W0b4AUft7leIcPCG0Eghz5mOVR8=",
"dev": true,
- "requires": {
+ "dependencies": {
"currently-unhandled": "^0.4.1",
"signal-exit": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/make-iterator": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz",
+ "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "kind-of": "^6.0.2"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/make-iterator/node_modules/kind-of": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "map-obj": {
+ "node_modules/map-cache": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/map-obj": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz",
"integrity": "sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/math-intrinsics": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+ "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "maxmin": {
+ "node_modules/maxmin": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/maxmin/-/maxmin-1.1.0.tgz",
"integrity": "sha1-cTZehKmd2Piz99X94vANHn9zvmE=",
"dev": true,
- "requires": {
+ "dependencies": {
"chalk": "^1.0.0",
"figures": "^1.0.1",
"gzip-size": "^1.0.0",
"pretty-bytes": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "media-typer": {
+ "node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/memory-pager": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
+ "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
+ "license": "MIT",
+ "optional": true
},
- "meow": {
+ "node_modules/meow": {
"version": "3.7.0",
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
"dev": true,
- "requires": {
+ "dependencies": {
"camelcase-keys": "^2.0.0",
"decamelize": "^1.1.2",
"loud-rejection": "^1.0.0",
@@ -2357,249 +3531,472 @@
"redent": "^1.0.0",
"trim-newlines": "^1.0.0"
},
- "dependencies": {
- "minimist": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
- "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
- "dev": true
- }
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
+ "node_modules/meow/node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "dev": true,
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/merge-descriptors": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
+ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
},
- "methods": {
+ "node_modules/methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
+ "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "mime": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
- "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
},
- "mime-db": {
- "version": "1.30.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz",
- "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=",
- "dev": true
+ "node_modules/mime": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
+ "license": "MIT",
+ "bin": {
+ "mime": "cli.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
- "mime-types": {
- "version": "2.1.17",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz",
- "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=",
- "dev": true,
- "requires": {
- "mime-db": "~1.30.0"
+ "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==",
+ "license": "MIT",
+ "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==",
+ "license": "MIT",
+ "dependencies": {
+ "mime-db": "1.52.0"
+ },
+ "engines": {
+ "node": ">= 0.6"
}
},
- "minimatch": {
+ "node_modules/minimatch": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
"integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
+ "integrity": "sha512-miQKw5Hv4NS1Psg2517mV4e4dYNaO3++hjAvLOAzKqZ61rH8NS1SK+vbfBWZ5PY/Me/bEWhUwqMghEW5Fb9T7Q==",
+ "license": "MIT"
+ },
+ "node_modules/mkdirp": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+ "integrity": "sha512-SknJC52obPfGQPnjIkXbmA6+5H15E+fR+E4iR2oQ3zzCLbd7/ONua69R/Gw7AgkTLsRG+r5fzksYwWe1AgTyWA==",
+ "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)",
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "0.0.8"
+ },
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ }
+ },
+ "node_modules/mocha": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
+ "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
+ "dependencies": {
+ "browser-stdout": "1.3.1",
+ "commander": "2.15.1",
+ "debug": "3.1.0",
+ "diff": "3.5.0",
+ "escape-string-regexp": "1.0.5",
+ "glob": "7.1.2",
+ "growl": "1.10.5",
+ "he": "1.1.1",
+ "minimatch": "3.0.4",
+ "mkdirp": "0.5.1",
+ "supports-color": "5.4.0"
+ },
+ "bin": {
+ "_mocha": "bin/_mocha",
+ "mocha": "bin/mocha"
+ },
+ "engines": {
+ "node": ">= 4.0.0"
+ }
+ },
+ "node_modules/mocha/node_modules/commander": {
+ "version": "2.15.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
+ "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
+ },
+ "node_modules/mocha/node_modules/debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dependencies": {
+ "ms": "2.0.0"
+ }
+ },
+ "node_modules/mocha/node_modules/glob": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
+ "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "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": "*"
+ }
+ },
+ "node_modules/mocha/node_modules/glob/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "license": "ISC",
+ "dependencies": {
"brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
}
},
- "minimist": {
- "version": "0.0.8",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
- "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+ "node_modules/mocha/node_modules/supports-color": {
+ "version": "5.4.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
+ "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
},
- "mkdirp": {
- "version": "0.5.1",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
- "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
- "requires": {
- "minimist": "0.0.8"
+ "node_modules/moment": {
+ "version": "2.30.1",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz",
+ "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+ "license": "MIT",
+ "engines": {
+ "node": "*"
}
},
- "mocha": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz",
- "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==",
- "requires": {
- "browser-stdout": "1.3.1",
- "commander": "2.15.1",
- "debug": "3.1.0",
- "diff": "3.5.0",
- "escape-string-regexp": "1.0.5",
- "glob": "7.1.2",
- "growl": "1.10.5",
- "he": "1.1.1",
- "minimatch": "3.0.4",
- "mkdirp": "0.5.1",
- "supports-color": "5.4.0"
- },
+ "node_modules/mongodb": {
+ "version": "3.7.4",
+ "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.7.4.tgz",
+ "integrity": "sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==",
+ "license": "Apache-2.0",
"dependencies": {
- "commander": {
- "version": "2.15.1",
- "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
- "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag=="
+ "bl": "^2.2.1",
+ "bson": "^1.1.4",
+ "denque": "^1.4.1",
+ "optional-require": "^1.1.8",
+ "safe-buffer": "^5.1.2"
+ },
+ "engines": {
+ "node": ">=4"
+ },
+ "optionalDependencies": {
+ "saslprep": "^1.0.0"
+ },
+ "peerDependenciesMeta": {
+ "aws4": {
+ "optional": true
+ },
+ "bson-ext": {
+ "optional": true
},
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
+ "kerberos": {
+ "optional": true
},
- "glob": {
- "version": "7.1.2",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
- "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
- "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"
- }
+ "mongodb-client-encryption": {
+ "optional": true
},
- "supports-color": {
- "version": "5.4.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
- "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==",
- "requires": {
- "has-flag": "^3.0.0"
- }
+ "mongodb-extjson": {
+ "optional": true
+ },
+ "snappy": {
+ "optional": true
}
}
},
- "moment": {
- "version": "2.22.1",
- "resolved": "https://registry.npmjs.org/moment/-/moment-2.22.1.tgz",
- "integrity": "sha512-shJkRTSebXvsVqk56I+lkb2latjBs8I+pc2TzWc545y2iFnSjm7Wg0QMh+ZWcdSLQyGEau5jI8ocnmkyTgr9YQ=="
- },
- "mongodb": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.0.8.tgz",
- "integrity": "sha512-mj7yIUyAr9xnO2ev8pcVJ9uX7gSum5LLs1qIFoWLxA5Il50+jcojKtaO1/TbexsScZ9Poz00Pc3b86GiSqJ7WA==",
- "requires": {
- "mongodb-core": "3.0.8"
- }
- },
- "mongodb-core": {
- "version": "3.0.8",
- "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.0.8.tgz",
- "integrity": "sha512-dFxfhH9N7ohuQnINyIl6dqEF8sYOE0WKuymrFf3L3cipJNrx+S8rAbNOTwa00/fuJCjBMJNFsaA+R2N16//UIw==",
- "requires": {
- "bson": "~1.0.4",
- "require_optional": "^1.0.1"
- }
+ "node_modules/mongodb/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"
+ }
+ ],
+ "license": "MIT"
},
- "ms": {
+ "node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
- "multimatch": {
+ "node_modules/multimatch": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/multimatch/-/multimatch-2.1.0.tgz",
"integrity": "sha1-nHkGoi+0wCkZ4vX3UWG0zb1LKis=",
"dev": true,
- "requires": {
+ "dependencies": {
"array-differ": "^1.0.0",
"array-union": "^1.0.1",
"arrify": "^1.0.0",
"minimatch": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "negotiator": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
- "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
+ "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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
+ },
+ "node_modules/next-tick": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz",
+ "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==",
+ "dev": true,
+ "license": "ISC"
},
- "nopt": {
+ "node_modules/nopt": {
"version": "3.0.6",
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
"dev": true,
- "requires": {
+ "dependencies": {
"abbrev": "1"
+ },
+ "bin": {
+ "nopt": "bin/nopt.js"
}
},
- "normalize-package-data": {
+ "node_modules/normalize-package-data": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
"integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==",
"dev": true,
- "requires": {
+ "dependencies": {
"hosted-git-info": "^2.1.4",
"is-builtin-module": "^1.0.0",
"semver": "2 || 3 || 4 || 5",
"validate-npm-package-license": "^3.0.1"
}
},
- "number-is-nan": {
+ "node_modules/number-is-nan": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
"integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "nwmatcher": {
- "version": "1.4.3",
- "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.3.tgz",
- "integrity": "sha512-IKdSTiDWCarf2JTS5e9e2+5tPZGdkRJ79XjYV0pzK8Q9BpsFyBq1RGKxzs7Q8UBushGw7m6TzVKz6fcY99iSWw==",
- "dev": true
+ "node_modules/nwmatcher": {
+ "version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
+ "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==",
+ "dev": true,
+ "license": "MIT"
},
- "oauth-sign": {
- "version": "0.8.2",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz",
- "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=",
- "dev": true
+ "node_modules/oauth-sign": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "*"
+ }
},
- "object-assign": {
+ "node_modules/object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object-inspect": {
+ "version": "1.13.4",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.4.tgz",
+ "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "object-keys": {
+ "node_modules/object-keys": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz",
"integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ }
},
- "object.assign": {
+ "node_modules/object.assign": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
"integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
"dev": true,
- "requires": {
+ "dependencies": {
"define-properties": "^1.1.2",
"function-bind": "^1.1.1",
"has-symbols": "^1.0.0",
"object-keys": "^1.0.11"
+ },
+ "engines": {
+ "node": ">= 0.4"
}
},
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
- "requires": {
+ "node_modules/object.defaults": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz",
+ "integrity": "sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "array-each": "^1.0.1",
+ "array-slice": "^1.0.0",
+ "for-own": "^1.0.0",
+ "isobject": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz",
+ "integrity": "sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "for-own": "^1.0.0",
+ "make-iterator": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/object.pick": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "isobject": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "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==",
+ "license": "MIT",
+ "dependencies": {
"ee-first": "1.1.1"
+ },
+ "engines": {
+ "node": ">= 0.8"
}
},
- "once": {
+ "node_modules/once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
+ "dependencies": {
"wrappy": "1"
}
},
- "optionator": {
+ "node_modules/optional-require": {
+ "version": "1.1.10",
+ "resolved": "https://registry.npmjs.org/optional-require/-/optional-require-1.1.10.tgz",
+ "integrity": "sha512-0r3OB9EIQsP+a5HVATHq2ExIy2q/Vaffoo4IAikW1spCYswhLxqWQS0i3GwS3AdY/OIP4SWZHLGz8CMU558PGw==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "require-at": "^1.0.6"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/optionator": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
"integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
"dev": true,
- "requires": {
+ "dependencies": {
"deep-is": "~0.1.3",
"fast-levenshtein": "~2.0.4",
"levn": "~0.3.0",
@@ -2607,526 +4004,917 @@
"type-check": "~0.3.2",
"wordwrap": "~1.0.0"
},
- "dependencies": {
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
- "dev": true
- }
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "os-homedir": {
+ "node_modules/optionator/node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
+ },
+ "node_modules/os-homedir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz",
- "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
+ "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "os-tmpdir": {
+ "node_modules/os-tmpdir": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/osenv": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
+ "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
+ "deprecated": "This package is no longer supported.",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "os-homedir": "^1.0.0",
+ "os-tmpdir": "^1.0.0"
+ }
},
- "pako": {
+ "node_modules/pako": {
"version": "0.2.9",
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
"integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
"dev": true
},
- "parse-json": {
+ "node_modules/parse-filepath": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz",
+ "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-absolute": "^1.0.0",
+ "map-cache": "^0.2.0",
+ "path-root": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.8"
+ }
+ },
+ "node_modules/parse-json": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
"dev": true,
- "requires": {
+ "dependencies": {
"error-ex": "^1.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "parse5": {
+ "node_modules/parse-passwd": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz",
+ "integrity": "sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/parse5": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
"integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
"dev": true
},
- "parseurl": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
- "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
+ "node_modules/parseurl": {
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "path-exists": {
+ "node_modules/path-exists": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
"dev": true,
- "requires": {
+ "dependencies": {
"pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "path-is-absolute": {
+ "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="
+ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
+ "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,
+ "license": "MIT"
+ },
+ "node_modules/path-root": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/path-root/-/path-root-0.1.1.tgz",
+ "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "path-root-regex": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-root-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/path-root-regex/-/path-root-regex-0.1.2.tgz",
+ "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "path-type": {
+ "node_modules/path-to-regexp": {
+ "version": "0.1.12",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.12.tgz",
+ "integrity": "sha512-RA1GjUVMnvYFxuqovrEqZoxxW5NUZqbwKtYz/Tt7nXerk0LbLblQmrsgdeOxV5SFHf0UDggjS/bSeOZwt1pmEQ==",
+ "license": "MIT"
+ },
+ "node_modules/path-type": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
"dev": true,
- "requires": {
+ "dependencies": {
"graceful-fs": "^4.1.2",
"pify": "^2.0.0",
"pinkie-promise": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "performance-now": {
+ "node_modules/performance-now": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
"integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
- "pify": {
+ "node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pify": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "pinkie": {
+ "node_modules/pinkie": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
"integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "pinkie-promise": {
+ "node_modules/pinkie-promise": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
"integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=",
"dev": true,
- "requires": {
+ "dependencies": {
"pinkie": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "pkg-up": {
+ "node_modules/pkg-up": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-1.0.0.tgz",
"integrity": "sha1-Pgj7RhUlxEIWJKM7n35tCvWwWiY=",
"dev": true,
- "requires": {
+ "dependencies": {
"find-up": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "prelude-ls": {
+ "node_modules/prelude-ls": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
"integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "pretty-bytes": {
+ "node_modules/pretty-bytes": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-1.0.4.tgz",
"integrity": "sha1-CiLoIQYJrTVUL4yNXSFZr/B1HIQ=",
"dev": true,
- "requires": {
+ "dependencies": {
"get-stdin": "^4.0.1",
"meow": "^3.1.0"
+ },
+ "bin": {
+ "pretty-bytes": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "private": {
+ "node_modules/private": {
"version": "0.1.8",
"resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz",
- "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg=="
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=",
- "dev": true
+ "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==",
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "proxy-addr": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
- "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
- "requires": {
- "forwarded": "~0.1.2",
- "ipaddr.js": "1.6.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==",
+ "license": "MIT"
+ },
+ "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==",
+ "license": "MIT",
+ "dependencies": {
+ "forwarded": "0.2.0",
+ "ipaddr.js": "1.9.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
}
},
- "prunk": {
+ "node_modules/prunk": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/prunk/-/prunk-1.3.1.tgz",
"integrity": "sha512-nLpTxQCqaKzdpzA344aK8u1wpVcnT0OD9oruH281TeqkqnxCWW4dD8Vn65mQWlfwPO8yWFyeK2h2qcw2N7hveA==",
"dev": true
},
- "punycode": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
- "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
- "dev": true
+ "node_modules/psl": {
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.15.0.tgz",
+ "integrity": "sha512-JZd3gMVBAVQkSs6HdNZo9Sdo0LNcQeMNP3CozBJb3JYC/QUYZTnKxP+f8oWRX4rHP5EurWxqAHTSwUCjlNKa1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "punycode": "^2.3.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/lupomontero"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
},
- "q": {
+ "node_modules/q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
- "dev": true
+ "deprecated": "You or someone you depend on is using Q, the JavaScript Promise library that gave JavaScript developers strong feelings about promises. They can almost certainly migrate to the native JavaScript promise now. Thank you literally everyone for joining me in this bet against the odds. Be excellent to each other.\n\n(For a CapTP with native promises, see @endo/eventual-send and @endo/captp)",
+ "dev": true,
+ "engines": {
+ "node": ">=0.6.0",
+ "teleport": ">=0.2.0"
+ }
},
- "qs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
+ "node_modules/qs": {
+ "version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.6"
+ }
},
- "range-parser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
- "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
+ "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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.6"
+ }
},
- "raw-body": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.3.tgz",
- "integrity": "sha512-9esiElv1BrZoI3rCDuOuKCBRbuApGGaDPQfjSflGxdy4oyzqghxu6klEkkVIvBje+FF0BX9coEv8KqW6X/7njw==",
- "requires": {
- "bytes": "3.0.0",
- "http-errors": "1.6.3",
- "iconv-lite": "0.4.23",
+ "node_modules/raw-body": {
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
+ "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
+ "license": "MIT",
+ "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/raw-body/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==",
+ "license": "MIT",
"dependencies": {
- "iconv-lite": {
- "version": "0.4.23",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.23.tgz",
- "integrity": "sha512-neyTUVFtahjf0mB3dZT77u+8O0QB89jFdnBkd5P1JgYPbPaia3gXXOVL2fq8VyU2gMMD7SaN7QukTB/pmXYvDA==",
- "requires": {
- "safer-buffer": ">= 2.1.2 < 3"
- }
- }
+ "safer-buffer": ">= 2.1.2 < 3"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "read-pkg": {
+ "node_modules/read-pkg": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
"dev": true,
- "requires": {
+ "dependencies": {
"load-json-file": "^1.0.0",
"normalize-package-data": "^2.3.2",
"path-type": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "read-pkg-up": {
+ "node_modules/read-pkg-up": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
"dev": true,
- "requires": {
+ "dependencies": {
"find-up": "^1.0.0",
"read-pkg": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "readable-stream": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz",
- "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==",
- "dev": true,
- "requires": {
+ "node_modules/readable-stream": {
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
+ "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
+ "license": "MIT",
+ "dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
"isarray": "~1.0.0",
- "process-nextick-args": "~1.0.6",
+ "process-nextick-args": "~2.0.0",
"safe-buffer": "~5.1.1",
- "string_decoder": "~1.0.3",
+ "string_decoder": "~1.1.1",
"util-deprecate": "~1.0.1"
}
},
- "redent": {
+ "node_modules/rechoir": {
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
+ "integrity": "sha512-/njmZ8s1wVeR6pjTZ+0nCnv8SpZNRMT2D1RLOJQESlYFDBvwpTA4KWJpZ+sBJ4+vhjILRcK7JIFdGCdxEAAitg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "resolve": "^1.9.0"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
+ },
+ "node_modules/redent": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
"dev": true,
- "requires": {
+ "dependencies": {
"indent-string": "^2.1.0",
"strip-indent": "^1.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "regenerate": {
+ "node_modules/regenerate": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz",
"integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg=="
},
- "regenerator-runtime": {
+ "node_modules/regenerator-runtime": {
"version": "0.11.1",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
"integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
},
- "regenerator-transform": {
+ "node_modules/regenerator-transform": {
"version": "0.10.1",
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz",
"integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==",
- "requires": {
+ "dependencies": {
"babel-runtime": "^6.18.0",
"babel-types": "^6.19.0",
"private": "^0.1.6"
}
},
- "regexpu-core": {
+ "node_modules/regexpu-core": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz",
"integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=",
- "requires": {
+ "dependencies": {
"regenerate": "^1.2.1",
"regjsgen": "^0.2.0",
"regjsparser": "^0.1.4"
}
},
- "regjsgen": {
+ "node_modules/regjsgen": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz",
"integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc="
},
- "regjsparser": {
+ "node_modules/regjsparser": {
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz",
"integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=",
- "requires": {
+ "dependencies": {
"jsesc": "~0.5.0"
+ },
+ "bin": {
+ "regjsparser": "bin/parser"
}
},
- "repeat-string": {
+ "node_modules/repeat-string": {
"version": "1.6.1",
"resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
"integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10"
+ }
},
- "repeating": {
+ "node_modules/repeating": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz",
"integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=",
"dev": true,
- "requires": {
+ "dependencies": {
"is-finite": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "request": {
- "version": "2.87.0",
- "resolved": "https://registry.npmjs.org/request/-/request-2.87.0.tgz",
- "integrity": "sha512-fcogkm7Az5bsS6Sl0sibkbhcKsnyon/jV1kF3ajGmF0c8HrttdKTPRT9hieOaQHA5HEq6r8OyWOo/o781C1tNw==",
+ "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",
"dev": true,
- "requires": {
+ "license": "Apache-2.0",
+ "dependencies": {
"aws-sign2": "~0.7.0",
- "aws4": "^1.6.0",
+ "aws4": "^1.8.0",
"caseless": "~0.12.0",
- "combined-stream": "~1.0.5",
- "extend": "~3.0.1",
+ "combined-stream": "~1.0.6",
+ "extend": "~3.0.2",
"forever-agent": "~0.6.1",
- "form-data": "~2.3.1",
- "har-validator": "~5.0.3",
+ "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.17",
- "oauth-sign": "~0.8.2",
+ "mime-types": "~2.1.19",
+ "oauth-sign": "~0.9.0",
"performance-now": "^2.1.0",
- "qs": "~6.5.1",
- "safe-buffer": "^5.1.1",
- "tough-cookie": "~2.3.3",
+ "qs": "~6.5.2",
+ "safe-buffer": "^5.1.2",
+ "tough-cookie": "~2.5.0",
"tunnel-agent": "^0.6.0",
- "uuid": "^3.1.0"
+ "uuid": "^3.3.2"
+ },
+ "engines": {
+ "node": ">= 6"
}
},
- "require_optional": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/require_optional/-/require_optional-1.0.1.tgz",
- "integrity": "sha512-qhM/y57enGWHAe3v/NcwML6a3/vfESLe/sGM2dII+gEO0BpKRUkWZow/tyloNqJyN6kXSl3RyyM8Ll5D/sJP8g==",
- "requires": {
- "resolve-from": "^2.0.0",
- "semver": "^5.1.0"
+ "node_modules/request/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/require-at": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/require-at/-/require-at-1.0.6.tgz",
+ "integrity": "sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=4"
}
},
- "resolve": {
- "version": "1.1.7",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
- "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
- "dev": true
+ "node_modules/resolve": {
+ "version": "1.22.11",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz",
+ "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-dir": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
+ "integrity": "sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "expand-tilde": "^2.0.0",
+ "global-modules": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "resolve-from": {
+ "node_modules/resolve-from": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
- "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
+ "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "resolve-pkg": {
+ "node_modules/resolve-pkg": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/resolve-pkg/-/resolve-pkg-0.1.0.tgz",
"integrity": "sha1-AsyZNBDik2livZcWahsHfalyVTE=",
"dev": true,
- "requires": {
+ "dependencies": {
"resolve-from": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "right-align": {
+ "node_modules/right-align": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
"integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
"dev": true,
- "requires": {
+ "dependencies": {
"align-text": "^0.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "rimraf": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz",
- "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==",
- "dev": true,
- "requires": {
- "glob": "^7.0.5"
- }
- },
- "rollup": {
- "version": "0.36.4",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.36.4.tgz",
- "integrity": "sha1-oiRJTFOGwdc9OPe7hvafXrARo9I=",
+ "node_modules/rollup": {
+ "version": "0.58.2",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-0.58.2.tgz",
+ "integrity": "sha512-RZVvCWm9BHOYloaE6LLiE/ibpjv1CmI8F8k0B0Cp+q1eezo3cswszJH1DN0djgzSlo0hjuuCmyeI+1XOYLl4wg==",
"dev": true,
- "requires": {
- "source-map-support": "^0.4.0"
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "0.0.38",
+ "@types/node": "*"
+ },
+ "bin": {
+ "rollup": "bin/rollup"
}
},
- "rsvp": {
+ "node_modules/rsvp": {
"version": "3.6.2",
"resolved": "https://registry.npmjs.org/rsvp/-/rsvp-3.6.2.tgz",
"integrity": "sha512-OfWGQTb9vnwRjwtA2QwpG2ICclHC3pgXZO5xt8H2EfgDquO0qVdSb5T88L4qJVAEugbS56pAuV4XZM58UX8ulw==",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": "0.12.* || 4.* || 6.* || >= 7.*"
+ }
},
- "safe-buffer": {
+ "node_modules/safe-buffer": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
"integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
},
- "safe-json-parse": {
+ "node_modules/safe-json-parse": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/safe-json-parse/-/safe-json-parse-1.0.1.tgz",
"integrity": "sha1-PnZyPjjf3aE8mx0poeB//uSzC1c=",
"dev": true
},
- "safer-buffer": {
+ "node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
+ "license": "MIT"
+ },
+ "node_modules/saslprep": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
+ "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "sparse-bitfield": "^3.0.3"
+ },
+ "engines": {
+ "node": ">=6"
+ }
},
- "sax": {
+ "node_modules/sax": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
"integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
"dev": true
},
- "semver": {
- "version": "5.4.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz",
- "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg=="
+ "node_modules/semver": {
+ "version": "5.7.2",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
+ "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
},
- "send": {
- "version": "0.16.2",
- "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
- "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
- "requires": {
+ "node_modules/send": {
+ "version": "0.19.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
+ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
+ "license": "MIT",
+ "dependencies": {
"debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
+ "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": "~1.6.2",
- "mime": "1.4.1",
- "ms": "2.0.0",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.0",
- "statuses": "~1.4.0"
- },
- "dependencies": {
- "statuses": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
- "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
- }
+ "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"
}
},
- "serve-static": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
- "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
- "requires": {
- "encodeurl": "~1.0.2",
+ "node_modules/send/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==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8"
+ }
+ },
+ "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==",
+ "license": "MIT"
+ },
+ "node_modules/serve-static": {
+ "version": "1.16.2",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
+ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
+ "license": "MIT",
+ "dependencies": {
+ "encodeurl": "~2.0.0",
"escape-html": "~1.0.3",
- "parseurl": "~1.3.2",
- "send": "0.16.2"
+ "parseurl": "~1.3.3",
+ "send": "0.19.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "setprototypeof": {
+ "node_modules/setprototypeof": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
+ "license": "ISC"
+ },
+ "node_modules/side-channel": {
"version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.1.0.tgz",
+ "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3",
+ "side-channel-list": "^1.0.0",
+ "side-channel-map": "^1.0.1",
+ "side-channel-weakmap": "^1.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-list": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/side-channel-list/-/side-channel-list-1.0.0.tgz",
+ "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==",
+ "license": "MIT",
+ "dependencies": {
+ "es-errors": "^1.3.0",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-map": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/side-channel-map/-/side-channel-map-1.0.1.tgz",
+ "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/side-channel-weakmap": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz",
+ "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==",
+ "license": "MIT",
+ "dependencies": {
+ "call-bound": "^1.0.2",
+ "es-errors": "^1.3.0",
+ "get-intrinsic": "^1.2.5",
+ "object-inspect": "^1.13.3",
+ "side-channel-map": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "signal-exit": {
+ "node_modules/signal-exit": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
"integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=",
"dev": true
},
- "slash": {
+ "node_modules/slash": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
"integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "source-map": {
+ "node_modules/source-map": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
"integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "source-map-support": {
+ "node_modules/source-map-support": {
"version": "0.4.18",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz",
"integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==",
"dev": true,
- "requires": {
+ "dependencies": {
"source-map": "^0.5.6"
}
},
- "spdx-correct": {
+ "node_modules/sparse-bitfield": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
+ "integrity": "sha512-kvzhi7vqKTfkh0PZU+2D2PIllw2ymqJKujUcyPMd9Y75Nv4nPbGJZXNhxsgdQab2BmlDct1YnfQCguEvHr7VsQ==",
+ "license": "MIT",
+ "optional": true,
+ "dependencies": {
+ "memory-pager": "^1.0.2"
+ }
+ },
+ "node_modules/spdx-correct": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz",
"integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=",
"dev": true,
- "requires": {
+ "dependencies": {
"spdx-license-ids": "^1.0.2"
}
},
- "spdx-expression-parse": {
+ "node_modules/spdx-expression-parse": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz",
"integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=",
"dev": true
},
- "spdx-license-ids": {
+ "node_modules/spdx-license-ids": {
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz",
"integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=",
"dev": true
},
- "sprintf-js": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.1.tgz",
- "integrity": "sha1-Nr54Mgr+WAH2zqPueLblqrlA6gw=",
- "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==",
+ "dev": true,
+ "license": "BSD-3-Clause"
},
- "sshpk": {
- "version": "1.13.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz",
- "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=",
+ "node_modules/sshpk": {
+ "version": "1.18.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.18.0.tgz",
+ "integrity": "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
"bcrypt-pbkdf": "^1.0.0",
@@ -3134,100 +4922,140 @@
"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"
}
},
- "statman-stopwatch": {
+ "node_modules/statman-stopwatch": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/statman-stopwatch/-/statman-stopwatch-2.7.0.tgz",
"integrity": "sha1-z6fCA0IKs4BNjSsHRcwFGaYM8UM=",
- "requires": {
+ "dependencies": {
"lodash.isboolean": "^3.0.3",
"lodash.isempty": "^4.4.0",
"performance-now": "^2.0.0",
"string-template": "^1.0.0",
"uuid": "^3.0.1"
- },
- "dependencies": {
- "string-template": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
- "integrity": "sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y="
- }
}
},
- "statuses": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
- "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
+ "node_modules/statman-stopwatch/node_modules/string-template": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/string-template/-/string-template-1.0.0.tgz",
+ "integrity": "sha1-np8iM9wA8hhxjsN5oopWc+zKi5Y="
+ },
+ "node_modules/statuses": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
+ "license": "MIT",
+ "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==",
+ "license": "MIT",
+ "dependencies": {
+ "safe-buffer": "~5.1.0"
+ }
},
- "string-template": {
+ "node_modules/string-template": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/string-template/-/string-template-0.2.1.tgz",
"integrity": "sha1-QpMuWYo1LQH8IuwzZ9nYTuxsmt0=",
"dev": true
},
- "string_decoder": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
- "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
- "dev": true,
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- },
- "strip-ansi": {
+ "node_modules/strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
+ "dependencies": {
"ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "strip-bom": {
+ "node_modules/strip-bom": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
"dev": true,
- "requires": {
+ "dependencies": {
"is-utf8": "^0.2.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "strip-indent": {
+ "node_modules/strip-indent": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
"dev": true,
- "requires": {
+ "dependencies": {
"get-stdin": "^4.0.1"
+ },
+ "bin": {
+ "strip-indent": "cli.js"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
- "supports-color": {
+ "node_modules/supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
- "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
+ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "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,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
- "symbol-tree": {
+ "node_modules/symbol-tree": {
"version": "3.2.2",
"resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
"integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
"dev": true
},
- "systemjs": {
+ "node_modules/systemjs": {
"version": "0.19.47",
"resolved": "https://registry.npmjs.org/systemjs/-/systemjs-0.19.47.tgz",
"integrity": "sha1-yMk5NxgPP1SBx2nNJyB2P7SjHG8=",
"dev": true,
- "requires": {
+ "dependencies": {
"when": "^3.7.5"
}
},
- "systemjs-builder": {
- "version": "0.16.12",
- "resolved": "https://registry.npmjs.org/systemjs-builder/-/systemjs-builder-0.16.12.tgz",
- "integrity": "sha512-E+INOPzUsi1VpXat3GYDKl1Xap3Acv3Bw6KmRC9TdpfdJnTk6Jh5K07DdM8P+LEPXZaLZvTaaN/5q2i+1FD1vA==",
+ "node_modules/systemjs-builder": {
+ "version": "0.16.15",
+ "resolved": "https://registry.npmjs.org/systemjs-builder/-/systemjs-builder-0.16.15.tgz",
+ "integrity": "sha512-C18G//KWWwQpstAVBUDt0YbbqvSFVVtr0MFqtf2zB4U/cePOA00Btcja++mzlFLMnepVpDv0GdtfE/6A8lrxeA==",
"dev": true,
- "requires": {
+ "license": "MIT",
+ "dependencies": {
"babel-core": "^6.24.1",
"babel-plugin-syntax-dynamic-import": "^6.18.0",
"babel-plugin-transform-amd-system-wrapper": "^0.3.7",
@@ -3240,375 +5068,576 @@
"es6-template-strings": "^2.0.0",
"glob": "^7.0.3",
"mkdirp": "^0.5.1",
- "rollup": "^0.36.3",
+ "rollup": "^0.58.2",
"source-map": "^0.5.3",
"systemjs": "^0.19.46",
- "traceur": "0.0.105",
- "uglify-js": "^2.6.1"
+ "terser": "3.8.1",
+ "traceur": "0.0.105"
+ }
+ },
+ "node_modules/terser": {
+ "version": "3.8.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-3.8.1.tgz",
+ "integrity": "sha512-FRin3gKQ0vm0xPPLuxw1FqpVgv1b2pBpYCaFb5qe6A7sD749Fnq1VbDiX3CEFM0BV0fqDzFtBfgmxhxCdzKQIg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "commander": "~2.16.0",
+ "source-map": "~0.6.1",
+ "source-map-support": "~0.5.6"
+ },
+ "bin": {
+ "terser": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/terser/node_modules/commander": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.16.0.tgz",
+ "integrity": "sha512-sVXqklSaotK9at437sFlFpyOcJonxe0yST/AG9DkQKUdIE6IqGIMv4SfAQSKaJbSdVEJYItASCrBiVQHq1HQew==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/terser/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,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/terser/node_modules/source-map-support": {
+ "version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
}
},
- "tiny-lr": {
+ "node_modules/tiny-lr": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/tiny-lr/-/tiny-lr-1.1.1.tgz",
"integrity": "sha512-44yhA3tsaRoMOjQQ+5v5mVdqef+kH6Qze9jTpqtVufgYjYt08zyZAwNwwVBj3i1rJMnR52IxOW0LK0vBzgAkuA==",
"dev": true,
- "requires": {
+ "dependencies": {
"body": "^5.1.0",
"debug": "^3.1.0",
"faye-websocket": "~0.10.0",
"livereload-js": "^2.3.0",
"object-assign": "^4.1.0",
"qs": "^6.4.0"
- },
+ }
+ },
+ "node_modules/tiny-lr/node_modules/debug": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
+ "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
+ "dev": true,
"dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "dev": true,
- "requires": {
- "ms": "2.0.0"
- }
- }
+ "ms": "2.0.0"
}
},
- "to-fast-properties": {
+ "node_modules/to-fast-properties": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz",
- "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc="
+ "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "tough-cookie": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz",
- "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=",
+ "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,
+ "license": "MIT",
+ "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==",
+ "license": "MIT",
+ "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==",
"dev": true,
- "requires": {
- "punycode": "^1.4.1"
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "psl": "^1.1.28",
+ "punycode": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.8"
}
},
- "tr46": {
+ "node_modules/tr46": {
"version": "0.0.3",
"resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
"integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
"dev": true
},
- "traceur": {
+ "node_modules/traceur": {
"version": "0.0.105",
"resolved": "https://registry.npmjs.org/traceur/-/traceur-0.0.105.tgz",
- "integrity": "sha1-XPne6D1rd4YcPWxE1ThZrterBHk=",
+ "integrity": "sha512-WCcn9XUOl8ZxAlWFvZK2N36bwXwc+WqB72rMx8/XXA57ba3mtz/L9piMxiefM5RwFZlxK22SC/yKKQw1VcJsXA==",
"dev": true,
- "requires": {
+ "license": "Apache-2.0",
+ "dependencies": {
"commander": "2.9.x",
"glob": "5.0.x",
"rsvp": "^3.0.13",
"semver": "^4.3.3",
"source-map-support": "~0.2.8"
},
+ "bin": {
+ "traceur": "traceur"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/traceur/node_modules/glob": {
+ "version": "5.0.15",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
+ "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
"dependencies": {
- "glob": {
- "version": "5.0.15",
- "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
- "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
- "dev": true,
- "requires": {
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "2 || 3",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "semver": {
- "version": "4.3.6",
- "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
- "integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
- "dev": true
- },
- "source-map": {
- "version": "0.1.32",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz",
- "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=",
- "dev": true,
- "requires": {
- "amdefine": ">=0.0.4"
- }
- },
- "source-map-support": {
- "version": "0.2.10",
- "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz",
- "integrity": "sha1-6lo5AKHByyUJagrozFwrSxDe09w=",
- "dev": true,
- "requires": {
- "source-map": "0.1.32"
- }
- }
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "2 || 3",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/traceur/node_modules/semver": {
+ "version": "4.3.6",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
+ "integrity": "sha512-IrpJ+yoG4EOH8DFWuVg+8H1kW1Oaof0Wxe7cPcXW3x9BjkN/eVo54F15LyqemnDIUYskQWr9qvl/RihmSy6+xQ==",
+ "dev": true,
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver"
+ }
+ },
+ "node_modules/traceur/node_modules/source-map": {
+ "version": "0.1.32",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.32.tgz",
+ "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=",
+ "dev": true,
+ "dependencies": {
+ "amdefine": ">=0.0.4"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/traceur/node_modules/source-map-support": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.2.10.tgz",
+ "integrity": "sha1-6lo5AKHByyUJagrozFwrSxDe09w=",
+ "dev": true,
+ "dependencies": {
+ "source-map": "0.1.32"
}
},
- "trim-newlines": {
+ "node_modules/trim-newlines": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
- "integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
- "dev": true
+ "integrity": "sha512-Nm4cF79FhSTzrLKGDMi3I4utBtFv8qKy4sq1enftf2gMdpqI8oVQTAfySkTz5r49giVzDj88SVZXP4CeYQwjaw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "trim-right": {
+ "node_modules/trim-right": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz",
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
},
- "tunnel-agent": {
+ "node_modules/tunnel-agent": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
"integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
"dev": true,
- "requires": {
+ "dependencies": {
"safe-buffer": "^5.0.1"
+ },
+ "engines": {
+ "node": "*"
}
},
- "tweetnacl": {
+ "node_modules/tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
"integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=",
+ "dev": true
+ },
+ "node_modules/type": {
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/type/-/type-2.7.3.tgz",
+ "integrity": "sha512-8j+1QmAbPvLZow5Qpi6NCaN8FB60p/6x8/vfNqOk/hC+HuvFZhL4+WfekuhQLiqFZXOgQdrs3B+XxEmCc6b3FQ==",
"dev": true,
- "optional": true
+ "license": "ISC"
},
- "type-check": {
+ "node_modules/type-check": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
"integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
"dev": true,
- "requires": {
+ "dependencies": {
"prelude-ls": "~1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
}
},
- "type-detect": {
+ "node_modules/type-detect": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
"integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
},
- "type-is": {
- "version": "1.6.16",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
- "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
- "requires": {
+ "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==",
+ "license": "MIT",
+ "dependencies": {
"media-typer": "0.3.0",
- "mime-types": "~2.1.18"
+ "mime-types": "~2.1.24"
},
- "dependencies": {
- "mime-db": {
- "version": "1.33.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
- "integrity": "sha512-BHJ/EKruNIqJf/QahvxwQZXKygOQ256myeN/Ew+THcAa5q+PjyTTMMeNQC4DZw5AwfvelsUrA6B67NKMqXDbzQ=="
- },
- "mime-types": {
- "version": "2.1.18",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
- "integrity": "sha512-lc/aahn+t4/SWV/qcmumYjymLsWfN3ELhpmVuUFjgsORruuZPVSwAQryq+HHGvO/SI2KVX26bx+En+zhM8g8hQ==",
- "requires": {
- "mime-db": "~1.33.0"
- }
- }
+ "engines": {
+ "node": ">= 0.6"
}
},
- "typedarray": {
+ "node_modules/typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
"integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=",
"dev": true
},
- "uglify-js": {
+ "node_modules/uglify-js": {
"version": "2.8.29",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
"integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
"dev": true,
- "requires": {
+ "dependencies": {
"source-map": "~0.5.1",
- "uglify-to-browserify": "~1.0.0",
"yargs": "~3.10.0"
+ },
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ },
+ "optionalDependencies": {
+ "uglify-to-browserify": "~1.0.0"
}
},
- "uglify-to-browserify": {
+ "node_modules/uglify-to-browserify": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
"integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
"dev": true,
"optional": true
},
- "underscore.string": {
- "version": "3.3.4",
- "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.4.tgz",
- "integrity": "sha1-LCo/n4PmR2L9xF5s6sZRQoZCE9s=",
+ "node_modules/unc-path-regex": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz",
+ "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/underscore.string": {
+ "version": "3.3.6",
+ "resolved": "https://registry.npmjs.org/underscore.string/-/underscore.string-3.3.6.tgz",
+ "integrity": "sha512-VoC83HWXmCrF6rgkyxS9GHv8W9Q5nhMKho+OadDJGzL2oDYbYEppBaCMH6pFlwLeqj2QS+hhkw2kpXkSdD1JxQ==",
"dev": true,
- "requires": {
- "sprintf-js": "^1.0.3",
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "^1.1.1",
"util-deprecate": "^1.0.2"
+ },
+ "engines": {
+ "node": "*"
}
},
- "unpipe": {
+ "node_modules/underscore.string/node_modules/sprintf-js": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz",
+ "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==",
+ "dev": true,
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/undici-types": {
+ "version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
+ "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
+ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "uri-path": {
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/uri-path": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/uri-path/-/uri-path-1.0.0.tgz",
"integrity": "sha1-l0fwGDWJM8Md4PzP2C0TjmcmLjI=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.10"
+ }
},
- "util-deprecate": {
+ "node_modules/util-deprecate": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
- "dev": true
+ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
- "utils-merge": {
+ "node_modules/utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
+ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
+ "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.",
+ "license": "MIT",
+ "bin": {
+ "uuid": "bin/uuid"
+ }
},
- "uuid": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.2.1.tgz",
- "integrity": "sha512-jZnMwlb9Iku/O3smGWvZhauCf6cvvpKi4BKRiliS3cxnI+Gz9j5MEpTz2UFuXiKPJocb7gnsLHwiS05ige5BEA=="
+ "node_modules/v8flags": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz",
+ "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "homedir-polyfill": "^1.0.1"
+ },
+ "engines": {
+ "node": ">= 0.10"
+ }
},
- "validate-npm-package-license": {
+ "node_modules/validate-npm-package-license": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz",
"integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=",
"dev": true,
- "requires": {
+ "dependencies": {
"spdx-correct": "~1.0.0",
"spdx-expression-parse": "~1.0.0"
}
},
- "vary": {
+ "node_modules/vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
+ "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
+ "engines": {
+ "node": ">= 0.8"
+ }
},
- "verror": {
+ "node_modules/verror": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
"integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
"dev": true,
- "requires": {
+ "engines": [
+ "node >=0.6.0"
+ ],
+ "dependencies": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
"extsprintf": "^1.2.0"
}
},
- "webidl-conversions": {
+ "node_modules/webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
"dev": true
},
- "websocket-driver": {
+ "node_modules/websocket-driver": {
"version": "0.7.0",
"resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
"integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
"dev": true,
- "requires": {
+ "dependencies": {
"http-parser-js": ">=0.4.0",
"websocket-extensions": ">=0.1.1"
+ },
+ "engines": {
+ "node": ">=0.8.0"
}
},
- "websocket-extensions": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
- "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
- "dev": true
+ "node_modules/websocket-extensions": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz",
+ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=0.8.0"
+ }
},
- "whatwg-encoding": {
+ "node_modules/whatwg-encoding": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
"integrity": "sha512-jLBwwKUhi8WtBfsMQlL4bUUcT8sMkAtQinscJAe/M4KHCkHuUJAF6vuB0tueNIw4c8ziO6AkRmgY+jL3a0iiPw==",
"dev": true,
- "requires": {
+ "dependencies": {
"iconv-lite": "0.4.19"
}
},
- "whatwg-url": {
+ "node_modules/whatwg-url": {
"version": "4.8.0",
"resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-4.8.0.tgz",
"integrity": "sha1-0pgaqRSMHgCkHFphMRZqtGg7vMA=",
"dev": true,
- "requires": {
+ "dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
- },
- "dependencies": {
- "webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
- "dev": true
- }
}
},
- "when": {
+ "node_modules/whatwg-url/node_modules/webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=",
+ "dev": true
+ },
+ "node_modules/when": {
"version": "3.7.8",
"resolved": "https://registry.npmjs.org/when/-/when-3.7.8.tgz",
"integrity": "sha1-xxMLan6gRpPoQs3J56Hyqjmjn4I=",
"dev": true
},
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
+ "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,
- "requires": {
+ "license": "ISC",
+ "dependencies": {
"isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
}
},
- "window-size": {
+ "node_modules/window-size": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
"integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">= 0.8.0"
+ }
},
- "wordwrap": {
+ "node_modules/wordwrap": {
"version": "0.0.2",
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
"integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
},
- "wrappy": {
+ "node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
- "xml-name-validator": {
+ "node_modules/xml-name-validator": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
"integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
"dev": true
},
- "xtend": {
+ "node_modules/xtend": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
"integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=",
- "dev": true
+ "dev": true,
+ "engines": {
+ "node": ">=0.4"
+ }
},
- "yargs": {
+ "node_modules/yargs": {
"version": "3.10.0",
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
"dev": true,
- "requires": {
+ "dependencies": {
"camelcase": "^1.0.2",
"cliui": "^2.1.0",
"decamelize": "^1.0.0",
"window-size": "0.1.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
- "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
- "dev": true
- }
+ }
+ },
+ "node_modules/yargs/node_modules/camelcase": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
+ "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
}
}
}
diff --git a/package.json b/package.json
index 5e63bd8..2495fc1 100644
--- a/package.json
+++ b/package.json
@@ -44,14 +44,14 @@
"babel-plugin-transform-es2015-for-of": "^6.6.0",
"babel-plugin-transform-es2015-modules-systemjs": "^6.24.1",
"babel-preset-es2015": "^6.24.1",
- "body-parser": "^1.18.3",
+ "body-parser": "^1.20.3",
"config": "^1.30.0",
- "express": "^4.16.3",
+ "express": "^4.21.2",
"fs": "0.0.1-security",
- "lodash": "^4.17.10",
+ "lodash": "^4.17.21",
"mocha": "^5.2.0",
- "moment": "^2.22.1",
- "mongodb": "^3.0.8",
+ "moment": "^2.30.1",
+ "mongodb": "^3.7.4",
"statman-stopwatch": "^2.7.0"
},
"homepage": "https://github.com/JamesOsgood/mongodb-grafana#readme"