├── .github
├── ISSUE_TEMPLATE
│ └── bug_report.md
├── PULL_REQUEST_TEMPLATE
├── dependabot.yml
└── workflows
│ ├── codeql-analysis.yml
│ ├── node.js.yml
│ └── npm-publish.yml
├── .gitignore
├── .idea
├── encodings.xml
├── modules.xml
├── msgpack-response.iml
└── vcs.xml
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── index.js
├── package-lock.json
├── package.json
└── test
└── base.js
/.github/ISSUE_TEMPLATE/bug_report.md:
--------------------------------------------------------------------------------
1 | ---
2 | name: Bug report
3 | about: Create a report to help us improve
4 | title: ''
5 | labels: ''
6 | assignees: ''
7 |
8 | ---
9 |
10 | **Describe the bug**
11 | A clear and concise description of what the bug is.
12 |
13 | **To Reproduce**
14 | Steps to reproduce the behavior:
15 | 1. Go to '...'
16 | 2. Click on '....'
17 | 3. Scroll down to '....'
18 | 4. See error
19 |
20 | **Expected behavior**
21 | A clear and concise description of what you expected to happen.
22 |
23 | **Screenshots**
24 | If applicable, add screenshots to help explain your problem.
25 |
26 | **Desktop (please complete the following information):**
27 | - OS: [e.g. iOS]
28 | - Browser [e.g. chrome, safari]
29 | - Version [e.g. 22]
30 |
31 | **Smartphone (please complete the following information):**
32 | - Device: [e.g. iPhone6]
33 | - OS: [e.g. iOS8.1]
34 | - Browser [e.g. stock browser, safari]
35 | - Version [e.g. 22]
36 |
37 | **Additional context**
38 | Add any other context about the problem here.
39 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE:
--------------------------------------------------------------------------------
1 | **Issue:** [Link](https://github.com/MobiltronInc/msgpack-response/issues/YYY)
2 |
3 | ### Short description
4 | > Describe here the purpose of your PR.
5 |
6 | ### Solution
7 | > Describe the solution you came up with and the reasons that led you to that solution. If you thought about other solutions don't forget about mentioning them.
8 |
9 | ### Implementation
10 | > Detail in a checklist the steps that you took to implement the PR.
11 |
12 | - [ ] Step 1
13 | - [ ] Step 2
14 |
15 | ### GIF & Emoticons
16 | > Be creative and add emoticons & GIF to your PR. :+1:
17 |
--------------------------------------------------------------------------------
/.github/dependabot.yml:
--------------------------------------------------------------------------------
1 | version: 2
2 | updates:
3 |
4 | # Maintain dependencies for GitHub Actions
5 | - package-ecosystem: "github-actions"
6 | directory: "/"
7 | schedule:
8 | interval: "monthly"
9 |
10 | # Maintain dependencies for npm
11 | - package-ecosystem: "npm"
12 | directory: "/"
13 | schedule:
14 | interval: "monthly"
15 |
--------------------------------------------------------------------------------
/.github/workflows/codeql-analysis.yml:
--------------------------------------------------------------------------------
1 | # For most projects, this workflow file will not need changing; you simply need
2 | # to commit it to your repository.
3 | #
4 | # You may wish to alter this file to override the set of languages analyzed,
5 | # or to provide custom queries or build logic.
6 | #
7 | # ******** NOTE ********
8 | # We have attempted to detect the languages in your repository. Please check
9 | # the `language` matrix defined below to confirm you have the correct set of
10 | # supported CodeQL languages.
11 | #
12 | name: "CodeQL"
13 |
14 | on:
15 | push:
16 | branches: [ master ]
17 | pull_request:
18 | # The branches below must be a subset of the branches above
19 | branches: [ master ]
20 | schedule:
21 | - cron: '29 6 * * 5'
22 |
23 | jobs:
24 | analyze:
25 | name: Analyze
26 | runs-on: ubuntu-latest
27 | permissions:
28 | actions: read
29 | contents: read
30 | security-events: write
31 |
32 | strategy:
33 | fail-fast: false
34 | matrix:
35 | language: [ 'javascript' ]
36 | # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
37 | # Learn more:
38 | # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
39 |
40 | steps:
41 | - name: Checkout repository
42 | uses: actions/checkout@v2
43 |
44 | # Initializes the CodeQL tools for scanning.
45 | - name: Initialize CodeQL
46 | uses: github/codeql-action/init@v1
47 | with:
48 | languages: ${{ matrix.language }}
49 | # If you wish to specify custom queries, you can do so here or in a config file.
50 | # By default, queries listed here will override any specified in a config file.
51 | # Prefix the list here with "+" to use these queries and those in the config file.
52 | # queries: ./path/to/local/query, your-org/your-repo/queries@main
53 |
54 | # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
55 | # If this step fails, then you should remove it and run the build manually (see below)
56 | - name: Autobuild
57 | uses: github/codeql-action/autobuild@v1
58 |
59 | # ℹ️ Command-line programs to run using the OS shell.
60 | # 📚 https://git.io/JvXDl
61 |
62 | # ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
63 | # and modify them (or add more) to build your code if your project
64 | # uses a compiled language
65 |
66 | #- run: |
67 | # make bootstrap
68 | # make release
69 |
70 | - name: Perform CodeQL Analysis
71 | uses: github/codeql-action/analyze@v1
72 |
--------------------------------------------------------------------------------
/.github/workflows/node.js.yml:
--------------------------------------------------------------------------------
1 | # This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3 |
4 | name: Node.js CI
5 |
6 | on:
7 | push:
8 | branches: [ master ]
9 | pull_request:
10 | branches: [ master ]
11 |
12 | jobs:
13 | build:
14 |
15 | runs-on: ubuntu-latest
16 |
17 | strategy:
18 | matrix:
19 | node-version: [10.x, 12.x, 14.x]
20 |
21 | steps:
22 | - uses: actions/checkout@v2
23 | - name: Use Node.js ${{ matrix.node-version }}
24 | uses: actions/setup-node@v2.1.3
25 | with:
26 | node-version: ${{ matrix.node-version }}
27 | - run: npm ci
28 | - run: npm run build --if-present
29 | - run: npm test
30 |
--------------------------------------------------------------------------------
/.github/workflows/npm-publish.yml:
--------------------------------------------------------------------------------
1 | # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created
2 | # For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages
3 |
4 | name: Node.js Package
5 |
6 | on:
7 | release:
8 | types: [published]
9 |
10 | jobs:
11 | build:
12 | runs-on: ubuntu-latest
13 | steps:
14 | - uses: actions/checkout@v2
15 | - uses: actions/setup-node@v2.1.3
16 | with:
17 | node-version: 12
18 | - run: npm ci
19 | - run: npm test
20 |
21 | publish-npm:
22 | needs: build
23 | runs-on: ubuntu-latest
24 | steps:
25 | - uses: actions/checkout@v2
26 | - uses: actions/setup-node@v2.1.3
27 | with:
28 | node-version: 12
29 | registry-url: https://registry.npmjs.org/
30 | - run: npm ci
31 | - run: npm publish
32 | env:
33 | NODE_AUTH_TOKEN: ${{secrets.npm_token}}
34 |
35 | publish-gpr:
36 | needs: build
37 | runs-on: ubuntu-latest
38 | steps:
39 | - uses: actions/checkout@v2
40 | - uses: actions/setup-node@v2.1.3
41 | with:
42 | node-version: 12
43 | registry-url: https://npm.pkg.github.com/
44 | - run: npm ci
45 | - run: npm publish
46 | env:
47 | NODE_AUTH_TOKEN: ${{secrets.REPO_ACCESS_TOKEN}}
48 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
8 | # Runtime data
9 | pids
10 | *.pid
11 | *.seed
12 | *.pid.lock
13 |
14 | # Directory for instrumented libs generated by jscoverage/JSCover
15 | lib-cov
16 |
17 | # Coverage directory used by tools like istanbul
18 | coverage
19 |
20 | # nyc test coverage
21 | .nyc_output
22 |
23 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
24 | .grunt
25 |
26 | # Bower dependency directory (https://bower.io/)
27 | bower_components
28 |
29 | # node-waf configuration
30 | .lock-wscript
31 |
32 | # Compiled binary addons (http://nodejs.org/api/addons.html)
33 | build/Release
34 |
35 | # Dependency directories
36 | node_modules/
37 | jspm_packages/
38 |
39 | # Typescript v1 declaration files
40 | typings/
41 |
42 | # Optional npm cache directory
43 | .npm
44 |
45 | # Optional eslint cache
46 | .eslintcache
47 |
48 | # Optional REPL history
49 | .node_repl_history
50 |
51 | # Output of 'npm pack'
52 | *.tgz
53 |
54 | # dotenv environment variables file
55 | .env
56 |
57 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm
58 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
59 |
60 | # User-specific stuff:
61 | .idea/**/workspace.xml
62 | .idea/**/tasks.xml
63 | .idea/dictionaries
64 |
65 | # Sensitive or high-churn files:
66 | .idea/**/dataSources/
67 | .idea/**/dataSources.ids
68 | .idea/**/dataSources.xml
69 | .idea/**/dataSources.local.xml
70 | .idea/**/sqlDataSources.xml
71 | .idea/**/dynamic.xml
72 | .idea/**/uiDesigner.xml
73 |
74 | # Gradle:
75 | .idea/**/gradle.xml
76 | .idea/**/libraries
77 |
78 | # CMake
79 | cmake-build-debug/
80 |
81 | # Mongo Explorer plugin:
82 | .idea/**/mongoSettings.xml
83 |
84 | ## File-based project format:
85 | *.iws
86 |
87 | ## Plugin-specific files:
88 |
89 | # IntelliJ
90 | out/
91 |
92 | # mpeltonen/sbt-idea plugin
93 | .idea_modules/
94 |
95 | # JIRA plugin
96 | atlassian-ide-plugin.xml
97 |
98 | # Cursive Clojure plugin
99 | .idea/replstate.xml
100 |
101 | # Crashlytics plugin (for Android Studio and IntelliJ)
102 | com_crashlytics_export_strings.xml
103 | crashlytics.properties
104 | crashlytics-build.properties
105 | fabric.properties
106 | .DS_Store
107 |
--------------------------------------------------------------------------------
/.idea/encodings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/msgpack-response.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/CHANGELOG.md:
--------------------------------------------------------------------------------
1 | # Changelog
2 | All notable changes to this project will be documented in this file.
3 |
4 | The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5 | and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6 |
7 | ## [1.0.4] - 2020-12-14
8 | ### Changed
9 | - Bump assert from 1.5.0 to 2.0.0.
10 | - Bump actions/setup-node from v1 to v2.1.3.
11 |
12 | ## [1.0.3] - 2020-12-12
13 | ### Changed
14 | - Bump lodash from 4.17.4 to 4.17.19.
15 |
16 | ## [1.0.2] - 2017-06-11
17 | ### Fixed
18 | - Fixed exception *Maximum call stack size exceeded* thrown in some cases.
19 |
20 | ## [1.0.0] - 2017-06-11
21 | ### Added
22 | - First public release.
23 |
24 | [Unreleased]: https://github.com/sschizas/msgpack-response/compare/1.0.4...HEAD
25 | [1.0.4]: https://github.com/sschizas/msgpack-response/compare/v1.0.3...1.0.4
26 | [1.0.3]: https://github.com/sschizas/msgpack-response/compare/v1.0.2...1.0.3
27 | [1.0.2]: https://github.com/sschizas/msgpack-response/compare/vv1.0.0...v1.0.2
28 | [1.0.0]: https://github.com/sschizas/msgpack-response/releases/tag/vv1.0.0
29 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 |
2 | # Contributor Covenant Code of Conduct
3 |
4 | ## Our Pledge
5 |
6 | We as members, contributors, and leaders pledge to make participation in our
7 | community a harassment-free experience for everyone, regardless of age, body
8 | size, visible or invisible disability, ethnicity, sex characteristics, gender
9 | identity and expression, level of experience, education, socio-economic status,
10 | nationality, personal appearance, race, religion, or sexual identity
11 | and orientation.
12 |
13 | We pledge to act and interact in ways that contribute to an open, welcoming,
14 | diverse, inclusive, and healthy community.
15 |
16 | ## Our Standards
17 |
18 | Examples of behavior that contributes to a positive environment for our
19 | community include:
20 |
21 | * Demonstrating empathy and kindness toward other people
22 | * Being respectful of differing opinions, viewpoints, and experiences
23 | * Giving and gracefully accepting constructive feedback
24 | * Accepting responsibility and apologizing to those affected by our mistakes,
25 | and learning from the experience
26 | * Focusing on what is best not just for us as individuals, but for the
27 | overall community
28 |
29 | Examples of unacceptable behavior include:
30 |
31 | * The use of sexualized language or imagery, and sexual attention or
32 | advances of any kind
33 | * Trolling, insulting or derogatory comments, and personal or political attacks
34 | * Public or private harassment
35 | * Publishing others' private information, such as a physical or email
36 | address, without their explicit permission
37 | * Other conduct which could reasonably be considered inappropriate in a
38 | professional setting
39 |
40 | ## Enforcement Responsibilities
41 |
42 | Community leaders are responsible for clarifying and enforcing our standards of
43 | acceptable behavior and will take appropriate and fair corrective action in
44 | response to any behavior that they deem inappropriate, threatening, offensive,
45 | or harmful.
46 |
47 | Community leaders have the right and responsibility to remove, edit, or reject
48 | comments, commits, code, wiki edits, issues, and other contributions that are
49 | not aligned to this Code of Conduct, and will communicate reasons for moderation
50 | decisions when appropriate.
51 |
52 | ## Scope
53 |
54 | This Code of Conduct applies within all community spaces, and also applies when
55 | an individual is officially representing the community in public spaces.
56 | Examples of representing our community include using an official e-mail address,
57 | posting via an official social media account, or acting as an appointed
58 | representative at an online or offline event.
59 |
60 | ## Enforcement
61 |
62 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
63 | reported to the community leaders responsible for enforcement at
64 | stavros.schizas@gmail.com.
65 | All complaints will be reviewed and investigated promptly and fairly.
66 |
67 | All community leaders are obligated to respect the privacy and security of the
68 | reporter of any incident.
69 |
70 | ## Enforcement Guidelines
71 |
72 | Community leaders will follow these Community Impact Guidelines in determining
73 | the consequences for any action they deem in violation of this Code of Conduct:
74 |
75 | ### 1. Correction
76 |
77 | **Community Impact**: Use of inappropriate language or other behavior deemed
78 | unprofessional or unwelcome in the community.
79 |
80 | **Consequence**: A private, written warning from community leaders, providing
81 | clarity around the nature of the violation and an explanation of why the
82 | behavior was inappropriate. A public apology may be requested.
83 |
84 | ### 2. Warning
85 |
86 | **Community Impact**: A violation through a single incident or series
87 | of actions.
88 |
89 | **Consequence**: A warning with consequences for continued behavior. No
90 | interaction with the people involved, including unsolicited interaction with
91 | those enforcing the Code of Conduct, for a specified period of time. This
92 | includes avoiding interactions in community spaces as well as external channels
93 | like social media. Violating these terms may lead to a temporary or
94 | permanent ban.
95 |
96 | ### 3. Temporary Ban
97 |
98 | **Community Impact**: A serious violation of community standards, including
99 | sustained inappropriate behavior.
100 |
101 | **Consequence**: A temporary ban from any sort of interaction or public
102 | communication with the community for a specified period of time. No public or
103 | private interaction with the people involved, including unsolicited interaction
104 | with those enforcing the Code of Conduct, is allowed during this period.
105 | Violating these terms may lead to a permanent ban.
106 |
107 | ### 4. Permanent Ban
108 |
109 | **Community Impact**: Demonstrating a pattern of violation of community
110 | standards, including sustained inappropriate behavior, harassment of an
111 | individual, or aggression toward or disparagement of classes of individuals.
112 |
113 | **Consequence**: A permanent ban from any sort of public interaction within
114 | the community.
115 |
116 | ## Attribution
117 |
118 | This Code of Conduct is adapted from the [Contributor Covenant][homepage],
119 | version 2.0, available at
120 | [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
121 |
122 | Community Impact Guidelines were inspired by
123 | [Mozilla's code of conduct enforcement ladder][Mozilla CoC].
124 |
125 | For answers to common questions about this code of conduct, see the FAQ at
126 | [https://www.contributor-covenant.org/faq][FAQ]. Translations are available
127 | at [https://www.contributor-covenant.org/translations][translations].
128 |
129 | [homepage]: https://www.contributor-covenant.org
130 | [v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
131 | [Mozilla CoC]: https://github.com/mozilla/diversity
132 | [FAQ]: https://www.contributor-covenant.org/faq
133 | [translations]: https://www.contributor-covenant.org/translations
134 |
135 |
--------------------------------------------------------------------------------
/CONTRIBUTING.md:
--------------------------------------------------------------------------------
1 | # Contribution
2 |
3 | Before working on the project it's very important to understand its value and how it works. You can find that information in the project Documentation *(either in the README file or in the project Wiki)*. All my projects respect the [CODE OF CONDUCT](https://github.com/sschizas/msgpack-response/blob/master/CODE_OF_CONDUCT.md). Keep it present when contributing with the project. If any of the principles listed there is not followed I will be forced to take action on that.
4 |
5 | ## A note for developers
6 |
7 | Are you interested in contributing? Just do it! My projects are also your projects. I created them for the community and you are part of that community. I am open to new contributors, proposals, improvements, bug fixes... If you are a very active contributor I will also add you as a member of the repository.
8 |
9 | > I am looking forward to your contributions!
10 |
11 | ## Moderating
12 |
13 | If you are moderator in any of our projects:
14 |
15 | - When new Issues/PRs are opened we should check if they are in the scope of the project. In case they aren't we should politely explain why, suggesting alternatives, and closing them.
16 | - To have a better organization we should tag the Issues/PRs as they get created. Include a label for the type and the severity & occurrence *(in case of a bug)*.
17 | - If some information is required to have a better context about the Issue/PR we should ask the developer for it.
18 | - If the Issue/PR doesn't follow the *Coe of Conduct*. We should close the Issue/PR right away.
19 |
20 | ## Issuing
21 |
22 | If you are a developer using the project and you are interested in reporting an issue:
23 |
24 | - The issue body will be automatically filled with a template. Fill the template information describing your issue and providing some context.
25 | - Project moderators might ask you for for some information. Be willing to report it.
26 | - Use a descriptive name for the Issue.
27 | - The reported Issue must follow the *Code of Conduct*.
28 |
29 | ## Coding
30 |
31 | If you contribute with the project make sure:
32 |
33 | - Your changes in the project follow the project architecture and style.
34 | - Make sure you include unit tests for your changes and they pass.
35 | - Make sure you get all the GitHub validations passing.
36 | - The code is documented.
37 | - The CHANGELOG is updated to reflect the changes.
38 | - If needed, the README includes a quick reference to the changes.
39 |
40 | ## Developer's Certificate of Origin 1.1
41 |
42 | By making a contribution to this project, I certify that:
43 |
44 | - (a) The contribution was created in whole or in part by me and I
45 | have the right to submit it under the open source license
46 | indicated in the file; or
47 |
48 | - (b) The contribution is based upon previous work that, to the best
49 | of my knowledge, is covered under an appropriate open source
50 | license and I have the right under that license to submit that
51 | work with modifications, whether created in whole or in part
52 | by me, under the same open source license (unless I am
53 | permitted to submit under a different license), as indicated
54 | in the file; or
55 |
56 | - (c) The contribution was provided directly to me by some other
57 | person who certified (a), (b) or (c) and I have not modified
58 | it.
59 |
60 | - (d) I understand and agree that this project and the contribution
61 | are public and that a record of the contribution (including all
62 | personal information I submit with it, including my sign-off) is
63 | maintained indefinitely and may be redistributed consistent with
64 | this project or the open source license(s) involved.
65 |
66 | *Wording of statement copied from [elinux.org](http://elinux.org/Developer_Certificate_Of_Origin)*
67 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Stavros Schizas
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # msgpack-response
2 | 
3 | [](https://github.com/sschizas/msgpack-response)
4 | [](CODE_OF_CONDUCT.md)
5 | [](https://opensource.org/licenses/MIT)
6 |
7 | An implementation of [Message Pack](http://msgpack.org/) middleware for [ExpressJS](https://expressjs.com/).
8 |
9 | __Features__
10 |
11 | * Automatic Message Pack detection (from the HTTP headers) and encoding of all JSON messages to Message Pack.
12 | * Extension of the current ExpressJS API; Introducing the `Response.msgPack(jsObject)` method on the standard [ExpressJS Response](https://expressjs.com/en/4x/api.html#res) object.
13 |
14 | ## Getting Started
15 | With auto-detection and transformation enabled, the middleware detects automatically the HTTP header `Accept: application/x-msgpack` and piggybacks the `Response.json()` method of the ExpressJS API, to encode the JSON response as Message Pack. This method is useful when you have existing applications that need to use the middleware, without changing the codebase very much.
16 |
17 | ```javascript
18 | const msgpackResponse = require('msgpack-response');
19 |
20 | app.use(msgpackResponse({auto_detect: true}));
21 |
22 | app.get('/test_json', (req, res) => {
23 | res.status(200).json({'message': 'a true test'});
24 | })
25 | ```
26 |
27 | > Note: Remember to add the header `Accept: application/x-msgpack` in the request.
28 |
29 | Also, it can have auto-detection and transformation disabled. The middleware extends the `Response` object of the ExpressJS framework, by adding the `msgPack()` method to it. Then to return an encoded response, you just use the `Response.msgPack()` method that accepts the Javascript object as a parameter. For example,
30 |
31 | ```javascript
32 | const msgpackResponse = require('msgpack-response');
33 |
34 | app.use(msgpackResponse({auto_detect: false}));
35 | //or
36 | app.use(msgpackResponse());
37 |
38 | app.get('/test_msgpack', (req, res) => {
39 | res.status(200).msgPack({'message': 'a true test'});
40 | });
41 | ```
42 |
43 | > Note: Initialize the middleware before the actual routes in the middleware chain to properly extend the `Response` Object.
44 |
45 | ## Requirements
46 | Node.js >= 6.0
47 |
48 | ## Installation
49 |
50 | With [npm](https://www.npmjs.com/) do:
51 |
52 | ```bash
53 | npm install msgpack-response -save
54 | ```
55 |
56 | ## About
57 | I :heart: open source software!
58 |
59 | Check out my other [open source projects](https://github.com/sschizas) or say :wave: on [twitter](https://twitter.com/StavrosSchizas).
60 |
61 | ## Contribute
62 |
63 | Contributions are welcome :metal:. Please see the [Contributing Guide](https://github.com/sschizas/msgpack-response/blob/master/CONTRIBUTING.md) and the [Code of Conduct](https://github.com/sschizas/msgpack-response/blob/master/CODE_OF_CONDUCT.md).
64 |
65 | ## Authors
66 |
67 | * **Stavros Schizas** - *Initial work & Maintainer*
68 | * **Vassilios Karakoidas** - *Initial work* - [Wizhut](http://bkarak.wizhut.com)
69 |
70 | See also the list of [contributors](https://github.com/sschizas/msgpack-response/graphs/contributors) who participated in this project.
71 |
72 | ## License
73 |
74 | msgpack-response is available under the MIT license. See the [LICENSE](LICENSE.md) file for more info.
75 |
--------------------------------------------------------------------------------
/index.js:
--------------------------------------------------------------------------------
1 | /*!
2 | * msgpack-response
3 | * Copyright(c) 2017-present Mobiltron Inc
4 | * MIT Licensed
5 | */
6 |
7 |
8 | /**
9 | * Module dependencies.
10 | */
11 | const _ = require('lodash');
12 | const msgpack = require('msgpack');
13 |
14 |
15 | /**
16 | * Transform response data using msgpack.
17 | *
18 | * @return {Function} middleware
19 | * @public
20 | */
21 | function mgsPackResponse(options) {
22 | let autoDetect = false;
23 |
24 | if (!_.isUndefined(options)) {
25 | autoDetect = options.auto_detect || false;
26 | }
27 |
28 | return function _mgsPackResponse(req, res, next) {
29 | if (shouldMsgPack(req) && autoDetect) {
30 | res.json = function(jsObject) {
31 | var obj = jsObject;
32 | var encodedResponse = msgpack.pack(obj);
33 | res.setHeader('Content-Type', 'application/x-msgpack');
34 | res.removeHeader('Content-Length');
35 | res.setHeader('Content-Length', _.size(encodedResponse));
36 | res.send(encodedResponse);
37 | }
38 | }
39 |
40 | res.msgPack = function(jsObject) {
41 | var obj = jsObject;
42 | var encodedResponse = msgpack.pack(obj);
43 | res.setHeader('Content-Type', 'application/x-msgpack');
44 | res.setHeader('Content-Length', _.size(encodedResponse));
45 | res.send(encodedResponse);
46 | };
47 |
48 | next();
49 | };
50 | }
51 |
52 | /**
53 | * Default filter function.
54 | * @private
55 | */
56 | function shouldMsgPack(req) {
57 | let acceptType = req.get('accept');
58 | return !_.isNil(acceptType) && acceptType === 'application/x-msgpack';
59 | }
60 |
61 | /**
62 | * Module exports.
63 | * @public
64 | */
65 | module.exports = mgsPackResponse;
66 |
--------------------------------------------------------------------------------
/package-lock.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "msgpack-response",
3 | "version": "1.0.4",
4 | "lockfileVersion": 1,
5 | "requires": true,
6 | "dependencies": {
7 | "@ungap/promise-all-settled": {
8 | "version": "1.1.2",
9 | "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
10 | "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==",
11 | "dev": true
12 | },
13 | "abbrev": {
14 | "version": "1.0.9",
15 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz",
16 | "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=",
17 | "dev": true
18 | },
19 | "accepts": {
20 | "version": "1.3.7",
21 | "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
22 | "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
23 | "dev": true,
24 | "requires": {
25 | "mime-types": "~2.1.24",
26 | "negotiator": "0.6.2"
27 | }
28 | },
29 | "amdefine": {
30 | "version": "1.0.1",
31 | "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
32 | "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=",
33 | "dev": true,
34 | "optional": true
35 | },
36 | "ansi-colors": {
37 | "version": "4.1.1",
38 | "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
39 | "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
40 | "dev": true
41 | },
42 | "ansi-regex": {
43 | "version": "3.0.0",
44 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
45 | "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
46 | "dev": true
47 | },
48 | "ansi-styles": {
49 | "version": "4.3.0",
50 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
51 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
52 | "dev": true,
53 | "requires": {
54 | "color-convert": "^2.0.1"
55 | }
56 | },
57 | "anymatch": {
58 | "version": "3.1.1",
59 | "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
60 | "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
61 | "dev": true,
62 | "requires": {
63 | "normalize-path": "^3.0.0",
64 | "picomatch": "^2.0.4"
65 | }
66 | },
67 | "argparse": {
68 | "version": "1.0.10",
69 | "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
70 | "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
71 | "dev": true,
72 | "requires": {
73 | "sprintf-js": "~1.0.2"
74 | }
75 | },
76 | "array-filter": {
77 | "version": "1.0.0",
78 | "resolved": "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz",
79 | "integrity": "sha1-uveeYubvTCpMC4MSMtr/7CUfnYM=",
80 | "dev": true
81 | },
82 | "array-flatten": {
83 | "version": "1.1.1",
84 | "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
85 | "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=",
86 | "dev": true
87 | },
88 | "assert": {
89 | "version": "2.0.0",
90 | "resolved": "https://registry.npmjs.org/assert/-/assert-2.0.0.tgz",
91 | "integrity": "sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A==",
92 | "dev": true,
93 | "requires": {
94 | "es6-object-assign": "^1.1.0",
95 | "is-nan": "^1.2.1",
96 | "object-is": "^1.0.1",
97 | "util": "^0.12.0"
98 | }
99 | },
100 | "async": {
101 | "version": "1.5.2",
102 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
103 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
104 | "dev": true
105 | },
106 | "asynckit": {
107 | "version": "0.4.0",
108 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
109 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
110 | "dev": true
111 | },
112 | "available-typed-arrays": {
113 | "version": "1.0.2",
114 | "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.2.tgz",
115 | "integrity": "sha512-XWX3OX8Onv97LMk/ftVyBibpGwY5a8SmuxZPzeOxqmuEqUCOM9ZE+uIaD1VNJ5QnvU2UQusvmKbuM1FR8QWGfQ==",
116 | "dev": true,
117 | "requires": {
118 | "array-filter": "^1.0.0"
119 | }
120 | },
121 | "balanced-match": {
122 | "version": "1.0.0",
123 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
124 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
125 | "dev": true
126 | },
127 | "binary-extensions": {
128 | "version": "2.1.0",
129 | "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.1.0.tgz",
130 | "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==",
131 | "dev": true
132 | },
133 | "body-parser": {
134 | "version": "1.19.0",
135 | "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
136 | "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
137 | "dev": true,
138 | "requires": {
139 | "bytes": "3.1.0",
140 | "content-type": "~1.0.4",
141 | "debug": "2.6.9",
142 | "depd": "~1.1.2",
143 | "http-errors": "1.7.2",
144 | "iconv-lite": "0.4.24",
145 | "on-finished": "~2.3.0",
146 | "qs": "6.7.0",
147 | "raw-body": "2.4.0",
148 | "type-is": "~1.6.17"
149 | }
150 | },
151 | "brace-expansion": {
152 | "version": "1.1.11",
153 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
154 | "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
155 | "dev": true,
156 | "requires": {
157 | "balanced-match": "^1.0.0",
158 | "concat-map": "0.0.1"
159 | }
160 | },
161 | "braces": {
162 | "version": "3.0.2",
163 | "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
164 | "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
165 | "dev": true,
166 | "requires": {
167 | "fill-range": "^7.0.1"
168 | }
169 | },
170 | "browser-stdout": {
171 | "version": "1.3.1",
172 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
173 | "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
174 | "dev": true
175 | },
176 | "bytes": {
177 | "version": "3.1.0",
178 | "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
179 | "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==",
180 | "dev": true
181 | },
182 | "call-bind": {
183 | "version": "1.0.0",
184 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz",
185 | "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==",
186 | "dev": true,
187 | "requires": {
188 | "function-bind": "^1.1.1",
189 | "get-intrinsic": "^1.0.0"
190 | }
191 | },
192 | "camelcase": {
193 | "version": "5.3.1",
194 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
195 | "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
196 | "dev": true
197 | },
198 | "chalk": {
199 | "version": "4.1.0",
200 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz",
201 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==",
202 | "dev": true,
203 | "requires": {
204 | "ansi-styles": "^4.1.0",
205 | "supports-color": "^7.1.0"
206 | },
207 | "dependencies": {
208 | "has-flag": {
209 | "version": "4.0.0",
210 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
211 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
212 | "dev": true
213 | },
214 | "supports-color": {
215 | "version": "7.2.0",
216 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
217 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
218 | "dev": true,
219 | "requires": {
220 | "has-flag": "^4.0.0"
221 | }
222 | }
223 | }
224 | },
225 | "chokidar": {
226 | "version": "3.4.3",
227 | "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.4.3.tgz",
228 | "integrity": "sha512-DtM3g7juCXQxFVSNPNByEC2+NImtBuxQQvWlHunpJIS5Ocr0lG306cC7FCi7cEA0fzmybPUIl4txBIobk1gGOQ==",
229 | "dev": true,
230 | "requires": {
231 | "anymatch": "~3.1.1",
232 | "braces": "~3.0.2",
233 | "fsevents": "~2.1.2",
234 | "glob-parent": "~5.1.0",
235 | "is-binary-path": "~2.1.0",
236 | "is-glob": "~4.0.1",
237 | "normalize-path": "~3.0.0",
238 | "readdirp": "~3.5.0"
239 | }
240 | },
241 | "cliui": {
242 | "version": "5.0.0",
243 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
244 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
245 | "dev": true,
246 | "requires": {
247 | "string-width": "^3.1.0",
248 | "strip-ansi": "^5.2.0",
249 | "wrap-ansi": "^5.1.0"
250 | },
251 | "dependencies": {
252 | "ansi-regex": {
253 | "version": "4.1.0",
254 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
255 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
256 | "dev": true
257 | },
258 | "string-width": {
259 | "version": "3.1.0",
260 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
261 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
262 | "dev": true,
263 | "requires": {
264 | "emoji-regex": "^7.0.1",
265 | "is-fullwidth-code-point": "^2.0.0",
266 | "strip-ansi": "^5.1.0"
267 | }
268 | },
269 | "strip-ansi": {
270 | "version": "5.2.0",
271 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
272 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
273 | "dev": true,
274 | "requires": {
275 | "ansi-regex": "^4.1.0"
276 | }
277 | }
278 | }
279 | },
280 | "color-convert": {
281 | "version": "2.0.1",
282 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
283 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
284 | "dev": true,
285 | "requires": {
286 | "color-name": "~1.1.4"
287 | }
288 | },
289 | "color-name": {
290 | "version": "1.1.4",
291 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
292 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
293 | "dev": true
294 | },
295 | "combined-stream": {
296 | "version": "1.0.8",
297 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
298 | "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
299 | "dev": true,
300 | "requires": {
301 | "delayed-stream": "~1.0.0"
302 | }
303 | },
304 | "commander": {
305 | "version": "6.2.0",
306 | "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.0.tgz",
307 | "integrity": "sha512-zP4jEKbe8SHzKJYQmq8Y9gYjtO/POJLgIdKgV7B9qNmABVFVc+ctqSX6iXh4mCpJfRBOabiZ2YKPg8ciDw6C+Q=="
308 | },
309 | "component-emitter": {
310 | "version": "1.3.0",
311 | "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
312 | "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==",
313 | "dev": true
314 | },
315 | "concat-map": {
316 | "version": "0.0.1",
317 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
318 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
319 | "dev": true
320 | },
321 | "content-disposition": {
322 | "version": "0.5.3",
323 | "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
324 | "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
325 | "dev": true,
326 | "requires": {
327 | "safe-buffer": "5.1.2"
328 | }
329 | },
330 | "content-type": {
331 | "version": "1.0.4",
332 | "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
333 | "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
334 | "dev": true
335 | },
336 | "cookie": {
337 | "version": "0.4.0",
338 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
339 | "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==",
340 | "dev": true
341 | },
342 | "cookie-signature": {
343 | "version": "1.0.6",
344 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
345 | "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=",
346 | "dev": true
347 | },
348 | "cookiejar": {
349 | "version": "2.1.2",
350 | "resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
351 | "integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
352 | "dev": true
353 | },
354 | "debug": {
355 | "version": "2.6.9",
356 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
357 | "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
358 | "dev": true,
359 | "requires": {
360 | "ms": "2.0.0"
361 | }
362 | },
363 | "decamelize": {
364 | "version": "1.2.0",
365 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
366 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
367 | "dev": true
368 | },
369 | "deep-is": {
370 | "version": "0.1.3",
371 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
372 | "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
373 | "dev": true
374 | },
375 | "define-properties": {
376 | "version": "1.1.3",
377 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
378 | "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
379 | "dev": true,
380 | "requires": {
381 | "object-keys": "^1.0.12"
382 | }
383 | },
384 | "delayed-stream": {
385 | "version": "1.0.0",
386 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
387 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
388 | "dev": true
389 | },
390 | "depd": {
391 | "version": "1.1.2",
392 | "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
393 | "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=",
394 | "dev": true
395 | },
396 | "destroy": {
397 | "version": "1.0.4",
398 | "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
399 | "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=",
400 | "dev": true
401 | },
402 | "diff": {
403 | "version": "4.0.2",
404 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
405 | "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
406 | "dev": true
407 | },
408 | "ee-first": {
409 | "version": "1.1.1",
410 | "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
411 | "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=",
412 | "dev": true
413 | },
414 | "emoji-regex": {
415 | "version": "7.0.3",
416 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
417 | "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
418 | "dev": true
419 | },
420 | "encodeurl": {
421 | "version": "1.0.2",
422 | "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
423 | "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=",
424 | "dev": true
425 | },
426 | "es-abstract": {
427 | "version": "1.18.0-next.1",
428 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz",
429 | "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==",
430 | "dev": true,
431 | "requires": {
432 | "es-to-primitive": "^1.2.1",
433 | "function-bind": "^1.1.1",
434 | "has": "^1.0.3",
435 | "has-symbols": "^1.0.1",
436 | "is-callable": "^1.2.2",
437 | "is-negative-zero": "^2.0.0",
438 | "is-regex": "^1.1.1",
439 | "object-inspect": "^1.8.0",
440 | "object-keys": "^1.1.1",
441 | "object.assign": "^4.1.1",
442 | "string.prototype.trimend": "^1.0.1",
443 | "string.prototype.trimstart": "^1.0.1"
444 | }
445 | },
446 | "es-to-primitive": {
447 | "version": "1.2.1",
448 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
449 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
450 | "dev": true,
451 | "requires": {
452 | "is-callable": "^1.1.4",
453 | "is-date-object": "^1.0.1",
454 | "is-symbol": "^1.0.2"
455 | }
456 | },
457 | "es6-object-assign": {
458 | "version": "1.1.0",
459 | "resolved": "https://registry.npmjs.org/es6-object-assign/-/es6-object-assign-1.1.0.tgz",
460 | "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=",
461 | "dev": true
462 | },
463 | "escape-html": {
464 | "version": "1.0.3",
465 | "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
466 | "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
467 | "dev": true
468 | },
469 | "escape-string-regexp": {
470 | "version": "4.0.0",
471 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
472 | "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
473 | "dev": true
474 | },
475 | "escodegen": {
476 | "version": "1.8.1",
477 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz",
478 | "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=",
479 | "dev": true,
480 | "requires": {
481 | "esprima": "^2.7.1",
482 | "estraverse": "^1.9.1",
483 | "esutils": "^2.0.2",
484 | "optionator": "^0.8.1",
485 | "source-map": "~0.2.0"
486 | }
487 | },
488 | "esprima": {
489 | "version": "2.7.3",
490 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz",
491 | "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=",
492 | "dev": true
493 | },
494 | "estraverse": {
495 | "version": "1.9.3",
496 | "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz",
497 | "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=",
498 | "dev": true
499 | },
500 | "esutils": {
501 | "version": "2.0.3",
502 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
503 | "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
504 | "dev": true
505 | },
506 | "etag": {
507 | "version": "1.8.1",
508 | "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
509 | "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=",
510 | "dev": true
511 | },
512 | "express": {
513 | "version": "4.17.1",
514 | "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
515 | "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
516 | "dev": true,
517 | "requires": {
518 | "accepts": "~1.3.7",
519 | "array-flatten": "1.1.1",
520 | "body-parser": "1.19.0",
521 | "content-disposition": "0.5.3",
522 | "content-type": "~1.0.4",
523 | "cookie": "0.4.0",
524 | "cookie-signature": "1.0.6",
525 | "debug": "2.6.9",
526 | "depd": "~1.1.2",
527 | "encodeurl": "~1.0.2",
528 | "escape-html": "~1.0.3",
529 | "etag": "~1.8.1",
530 | "finalhandler": "~1.1.2",
531 | "fresh": "0.5.2",
532 | "merge-descriptors": "1.0.1",
533 | "methods": "~1.1.2",
534 | "on-finished": "~2.3.0",
535 | "parseurl": "~1.3.3",
536 | "path-to-regexp": "0.1.7",
537 | "proxy-addr": "~2.0.5",
538 | "qs": "6.7.0",
539 | "range-parser": "~1.2.1",
540 | "safe-buffer": "5.1.2",
541 | "send": "0.17.1",
542 | "serve-static": "1.14.1",
543 | "setprototypeof": "1.1.1",
544 | "statuses": "~1.5.0",
545 | "type-is": "~1.6.18",
546 | "utils-merge": "1.0.1",
547 | "vary": "~1.1.2"
548 | }
549 | },
550 | "fast-levenshtein": {
551 | "version": "2.0.6",
552 | "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
553 | "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
554 | "dev": true
555 | },
556 | "fast-safe-stringify": {
557 | "version": "2.0.8",
558 | "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz",
559 | "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==",
560 | "dev": true
561 | },
562 | "fill-range": {
563 | "version": "7.0.1",
564 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
565 | "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
566 | "dev": true,
567 | "requires": {
568 | "to-regex-range": "^5.0.1"
569 | }
570 | },
571 | "finalhandler": {
572 | "version": "1.1.2",
573 | "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
574 | "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
575 | "dev": true,
576 | "requires": {
577 | "debug": "2.6.9",
578 | "encodeurl": "~1.0.2",
579 | "escape-html": "~1.0.3",
580 | "on-finished": "~2.3.0",
581 | "parseurl": "~1.3.3",
582 | "statuses": "~1.5.0",
583 | "unpipe": "~1.0.0"
584 | }
585 | },
586 | "find-up": {
587 | "version": "5.0.0",
588 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
589 | "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
590 | "dev": true,
591 | "requires": {
592 | "locate-path": "^6.0.0",
593 | "path-exists": "^4.0.0"
594 | }
595 | },
596 | "flat": {
597 | "version": "5.0.2",
598 | "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
599 | "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
600 | "dev": true
601 | },
602 | "foreach": {
603 | "version": "2.0.5",
604 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz",
605 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=",
606 | "dev": true
607 | },
608 | "form-data": {
609 | "version": "3.0.1",
610 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz",
611 | "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==",
612 | "dev": true,
613 | "requires": {
614 | "asynckit": "^0.4.0",
615 | "combined-stream": "^1.0.8",
616 | "mime-types": "^2.1.12"
617 | }
618 | },
619 | "formidable": {
620 | "version": "1.2.2",
621 | "resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz",
622 | "integrity": "sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q==",
623 | "dev": true
624 | },
625 | "forwarded": {
626 | "version": "0.1.2",
627 | "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
628 | "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=",
629 | "dev": true
630 | },
631 | "fresh": {
632 | "version": "0.5.2",
633 | "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
634 | "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=",
635 | "dev": true
636 | },
637 | "fs.realpath": {
638 | "version": "1.0.0",
639 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
640 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
641 | "dev": true
642 | },
643 | "fsevents": {
644 | "version": "2.1.3",
645 | "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.3.tgz",
646 | "integrity": "sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ==",
647 | "dev": true,
648 | "optional": true
649 | },
650 | "function-bind": {
651 | "version": "1.1.1",
652 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
653 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
654 | "dev": true
655 | },
656 | "get-caller-file": {
657 | "version": "2.0.5",
658 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
659 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
660 | "dev": true
661 | },
662 | "get-intrinsic": {
663 | "version": "1.0.1",
664 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz",
665 | "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==",
666 | "dev": true,
667 | "requires": {
668 | "function-bind": "^1.1.1",
669 | "has": "^1.0.3",
670 | "has-symbols": "^1.0.1"
671 | }
672 | },
673 | "glob": {
674 | "version": "5.0.15",
675 | "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz",
676 | "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=",
677 | "dev": true,
678 | "requires": {
679 | "inflight": "^1.0.4",
680 | "inherits": "2",
681 | "minimatch": "2 || 3",
682 | "once": "^1.3.0",
683 | "path-is-absolute": "^1.0.0"
684 | }
685 | },
686 | "glob-parent": {
687 | "version": "5.1.1",
688 | "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz",
689 | "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==",
690 | "dev": true,
691 | "requires": {
692 | "is-glob": "^4.0.1"
693 | }
694 | },
695 | "growl": {
696 | "version": "1.10.5",
697 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
698 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
699 | "dev": true
700 | },
701 | "handlebars": {
702 | "version": "4.7.6",
703 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
704 | "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
705 | "dev": true,
706 | "requires": {
707 | "minimist": "^1.2.5",
708 | "neo-async": "^2.6.0",
709 | "source-map": "^0.6.1",
710 | "uglify-js": "^3.1.4",
711 | "wordwrap": "^1.0.0"
712 | },
713 | "dependencies": {
714 | "source-map": {
715 | "version": "0.6.1",
716 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
717 | "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
718 | "dev": true
719 | }
720 | }
721 | },
722 | "has": {
723 | "version": "1.0.3",
724 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
725 | "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
726 | "dev": true,
727 | "requires": {
728 | "function-bind": "^1.1.1"
729 | }
730 | },
731 | "has-flag": {
732 | "version": "1.0.0",
733 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz",
734 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=",
735 | "dev": true
736 | },
737 | "has-symbols": {
738 | "version": "1.0.1",
739 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
740 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
741 | "dev": true
742 | },
743 | "he": {
744 | "version": "1.2.0",
745 | "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
746 | "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
747 | "dev": true
748 | },
749 | "http-errors": {
750 | "version": "1.7.2",
751 | "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
752 | "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
753 | "dev": true,
754 | "requires": {
755 | "depd": "~1.1.2",
756 | "inherits": "2.0.3",
757 | "setprototypeof": "1.1.1",
758 | "statuses": ">= 1.5.0 < 2",
759 | "toidentifier": "1.0.0"
760 | }
761 | },
762 | "iconv-lite": {
763 | "version": "0.4.24",
764 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
765 | "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
766 | "dev": true,
767 | "requires": {
768 | "safer-buffer": ">= 2.1.2 < 3"
769 | }
770 | },
771 | "inflight": {
772 | "version": "1.0.6",
773 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
774 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
775 | "dev": true,
776 | "requires": {
777 | "once": "^1.3.0",
778 | "wrappy": "1"
779 | }
780 | },
781 | "inherits": {
782 | "version": "2.0.3",
783 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
784 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
785 | "dev": true
786 | },
787 | "ipaddr.js": {
788 | "version": "1.9.1",
789 | "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
790 | "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
791 | "dev": true
792 | },
793 | "is-arguments": {
794 | "version": "1.1.0",
795 | "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz",
796 | "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==",
797 | "dev": true,
798 | "requires": {
799 | "call-bind": "^1.0.0"
800 | }
801 | },
802 | "is-binary-path": {
803 | "version": "2.1.0",
804 | "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
805 | "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
806 | "dev": true,
807 | "requires": {
808 | "binary-extensions": "^2.0.0"
809 | }
810 | },
811 | "is-callable": {
812 | "version": "1.2.2",
813 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz",
814 | "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==",
815 | "dev": true
816 | },
817 | "is-date-object": {
818 | "version": "1.0.2",
819 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
820 | "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==",
821 | "dev": true
822 | },
823 | "is-extglob": {
824 | "version": "2.1.1",
825 | "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
826 | "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
827 | "dev": true
828 | },
829 | "is-fullwidth-code-point": {
830 | "version": "2.0.0",
831 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
832 | "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
833 | "dev": true
834 | },
835 | "is-generator-function": {
836 | "version": "1.0.8",
837 | "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.8.tgz",
838 | "integrity": "sha512-2Omr/twNtufVZFr1GhxjOMFPAj2sjc/dKaIqBhvo4qciXfJmITGH6ZGd8eZYNHza8t1y0e01AuqRhJwfWp26WQ==",
839 | "dev": true
840 | },
841 | "is-glob": {
842 | "version": "4.0.1",
843 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
844 | "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
845 | "dev": true,
846 | "requires": {
847 | "is-extglob": "^2.1.1"
848 | }
849 | },
850 | "is-nan": {
851 | "version": "1.3.0",
852 | "resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz",
853 | "integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==",
854 | "dev": true,
855 | "requires": {
856 | "define-properties": "^1.1.3"
857 | }
858 | },
859 | "is-negative-zero": {
860 | "version": "2.0.1",
861 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz",
862 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==",
863 | "dev": true
864 | },
865 | "is-number": {
866 | "version": "7.0.0",
867 | "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
868 | "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
869 | "dev": true
870 | },
871 | "is-plain-obj": {
872 | "version": "2.1.0",
873 | "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
874 | "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
875 | "dev": true
876 | },
877 | "is-regex": {
878 | "version": "1.1.1",
879 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz",
880 | "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==",
881 | "dev": true,
882 | "requires": {
883 | "has-symbols": "^1.0.1"
884 | }
885 | },
886 | "is-symbol": {
887 | "version": "1.0.3",
888 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
889 | "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
890 | "dev": true,
891 | "requires": {
892 | "has-symbols": "^1.0.1"
893 | }
894 | },
895 | "is-typed-array": {
896 | "version": "1.1.4",
897 | "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.4.tgz",
898 | "integrity": "sha512-ILaRgn4zaSrVNXNGtON6iFNotXW3hAPF3+0fB1usg2jFlWqo5fEDdmJkz0zBfoi7Dgskr8Khi2xZ8cXqZEfXNA==",
899 | "dev": true,
900 | "requires": {
901 | "available-typed-arrays": "^1.0.2",
902 | "call-bind": "^1.0.0",
903 | "es-abstract": "^1.18.0-next.1",
904 | "foreach": "^2.0.5",
905 | "has-symbols": "^1.0.1"
906 | }
907 | },
908 | "isexe": {
909 | "version": "2.0.0",
910 | "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
911 | "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
912 | "dev": true
913 | },
914 | "istanbul": {
915 | "version": "0.4.5",
916 | "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz",
917 | "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=",
918 | "dev": true,
919 | "requires": {
920 | "abbrev": "1.0.x",
921 | "async": "1.x",
922 | "escodegen": "1.8.x",
923 | "esprima": "2.7.x",
924 | "glob": "^5.0.15",
925 | "handlebars": "^4.0.1",
926 | "js-yaml": "3.x",
927 | "mkdirp": "0.5.x",
928 | "nopt": "3.x",
929 | "once": "1.x",
930 | "resolve": "1.1.x",
931 | "supports-color": "^3.1.0",
932 | "which": "^1.1.1",
933 | "wordwrap": "^1.0.0"
934 | }
935 | },
936 | "js-yaml": {
937 | "version": "3.14.1",
938 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
939 | "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
940 | "dev": true,
941 | "requires": {
942 | "argparse": "^1.0.7",
943 | "esprima": "^4.0.0"
944 | },
945 | "dependencies": {
946 | "esprima": {
947 | "version": "4.0.1",
948 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
949 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
950 | "dev": true
951 | }
952 | }
953 | },
954 | "levn": {
955 | "version": "0.3.0",
956 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
957 | "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
958 | "dev": true,
959 | "requires": {
960 | "prelude-ls": "~1.1.2",
961 | "type-check": "~0.3.2"
962 | }
963 | },
964 | "locate-path": {
965 | "version": "6.0.0",
966 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
967 | "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
968 | "dev": true,
969 | "requires": {
970 | "p-locate": "^5.0.0"
971 | }
972 | },
973 | "lodash": {
974 | "version": "4.17.20",
975 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
976 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
977 | },
978 | "log-symbols": {
979 | "version": "4.0.0",
980 | "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz",
981 | "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==",
982 | "dev": true,
983 | "requires": {
984 | "chalk": "^4.0.0"
985 | }
986 | },
987 | "lru-cache": {
988 | "version": "6.0.0",
989 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
990 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
991 | "dev": true,
992 | "requires": {
993 | "yallist": "^4.0.0"
994 | }
995 | },
996 | "media-typer": {
997 | "version": "0.3.0",
998 | "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
999 | "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=",
1000 | "dev": true
1001 | },
1002 | "merge-descriptors": {
1003 | "version": "1.0.1",
1004 | "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
1005 | "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=",
1006 | "dev": true
1007 | },
1008 | "methods": {
1009 | "version": "1.1.2",
1010 | "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
1011 | "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
1012 | "dev": true
1013 | },
1014 | "mime": {
1015 | "version": "1.6.0",
1016 | "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
1017 | "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
1018 | "dev": true
1019 | },
1020 | "mime-db": {
1021 | "version": "1.44.0",
1022 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
1023 | "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
1024 | "dev": true
1025 | },
1026 | "mime-types": {
1027 | "version": "2.1.27",
1028 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
1029 | "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
1030 | "dev": true,
1031 | "requires": {
1032 | "mime-db": "1.44.0"
1033 | }
1034 | },
1035 | "minimatch": {
1036 | "version": "3.0.4",
1037 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
1038 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
1039 | "dev": true,
1040 | "requires": {
1041 | "brace-expansion": "^1.1.7"
1042 | }
1043 | },
1044 | "minimist": {
1045 | "version": "1.2.5",
1046 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
1047 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
1048 | "dev": true
1049 | },
1050 | "mkdirp": {
1051 | "version": "0.5.5",
1052 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
1053 | "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
1054 | "dev": true,
1055 | "requires": {
1056 | "minimist": "^1.2.5"
1057 | }
1058 | },
1059 | "mocha": {
1060 | "version": "8.2.1",
1061 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-8.2.1.tgz",
1062 | "integrity": "sha512-cuLBVfyFfFqbNR0uUKbDGXKGk+UDFe6aR4os78XIrMQpZl/nv7JYHcvP5MFIAb374b2zFXsdgEGwmzMtP0Xg8w==",
1063 | "dev": true,
1064 | "requires": {
1065 | "@ungap/promise-all-settled": "1.1.2",
1066 | "ansi-colors": "4.1.1",
1067 | "browser-stdout": "1.3.1",
1068 | "chokidar": "3.4.3",
1069 | "debug": "4.2.0",
1070 | "diff": "4.0.2",
1071 | "escape-string-regexp": "4.0.0",
1072 | "find-up": "5.0.0",
1073 | "glob": "7.1.6",
1074 | "growl": "1.10.5",
1075 | "he": "1.2.0",
1076 | "js-yaml": "3.14.0",
1077 | "log-symbols": "4.0.0",
1078 | "minimatch": "3.0.4",
1079 | "ms": "2.1.2",
1080 | "nanoid": "3.1.12",
1081 | "serialize-javascript": "5.0.1",
1082 | "strip-json-comments": "3.1.1",
1083 | "supports-color": "7.2.0",
1084 | "which": "2.0.2",
1085 | "wide-align": "1.1.3",
1086 | "workerpool": "6.0.2",
1087 | "yargs": "13.3.2",
1088 | "yargs-parser": "13.1.2",
1089 | "yargs-unparser": "2.0.0"
1090 | },
1091 | "dependencies": {
1092 | "debug": {
1093 | "version": "4.2.0",
1094 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
1095 | "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
1096 | "dev": true,
1097 | "requires": {
1098 | "ms": "2.1.2"
1099 | }
1100 | },
1101 | "esprima": {
1102 | "version": "4.0.1",
1103 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
1104 | "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
1105 | "dev": true
1106 | },
1107 | "glob": {
1108 | "version": "7.1.6",
1109 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
1110 | "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
1111 | "dev": true,
1112 | "requires": {
1113 | "fs.realpath": "^1.0.0",
1114 | "inflight": "^1.0.4",
1115 | "inherits": "2",
1116 | "minimatch": "^3.0.4",
1117 | "once": "^1.3.0",
1118 | "path-is-absolute": "^1.0.0"
1119 | }
1120 | },
1121 | "has-flag": {
1122 | "version": "4.0.0",
1123 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
1124 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
1125 | "dev": true
1126 | },
1127 | "js-yaml": {
1128 | "version": "3.14.0",
1129 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz",
1130 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==",
1131 | "dev": true,
1132 | "requires": {
1133 | "argparse": "^1.0.7",
1134 | "esprima": "^4.0.0"
1135 | }
1136 | },
1137 | "ms": {
1138 | "version": "2.1.2",
1139 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1140 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1141 | "dev": true
1142 | },
1143 | "supports-color": {
1144 | "version": "7.2.0",
1145 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
1146 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
1147 | "dev": true,
1148 | "requires": {
1149 | "has-flag": "^4.0.0"
1150 | }
1151 | },
1152 | "which": {
1153 | "version": "2.0.2",
1154 | "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
1155 | "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
1156 | "dev": true,
1157 | "requires": {
1158 | "isexe": "^2.0.0"
1159 | }
1160 | }
1161 | }
1162 | },
1163 | "ms": {
1164 | "version": "2.0.0",
1165 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
1166 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
1167 | "dev": true
1168 | },
1169 | "msgpack": {
1170 | "version": "1.0.3",
1171 | "resolved": "https://registry.npmjs.org/msgpack/-/msgpack-1.0.3.tgz",
1172 | "integrity": "sha512-FX88+Pexuh+UItdqg68WhNPGPhqs57RlXAYyXNZ8eTQC/Tx5lzeIoxTxA2qAd7qU5a/crON5F0ADf4l6k2b7Jw==",
1173 | "requires": {
1174 | "nan": "^2.14.0"
1175 | }
1176 | },
1177 | "nan": {
1178 | "version": "2.14.2",
1179 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz",
1180 | "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="
1181 | },
1182 | "nanoid": {
1183 | "version": "3.1.12",
1184 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.1.12.tgz",
1185 | "integrity": "sha512-1qstj9z5+x491jfiC4Nelk+f8XBad7LN20PmyWINJEMRSf3wcAjAWysw1qaA8z6NSKe2sjq1hRSDpBH5paCb6A==",
1186 | "dev": true
1187 | },
1188 | "negotiator": {
1189 | "version": "0.6.2",
1190 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
1191 | "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==",
1192 | "dev": true
1193 | },
1194 | "neo-async": {
1195 | "version": "2.6.2",
1196 | "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
1197 | "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
1198 | "dev": true
1199 | },
1200 | "nopt": {
1201 | "version": "3.0.6",
1202 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
1203 | "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
1204 | "dev": true,
1205 | "requires": {
1206 | "abbrev": "1"
1207 | }
1208 | },
1209 | "normalize-path": {
1210 | "version": "3.0.0",
1211 | "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
1212 | "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
1213 | "dev": true
1214 | },
1215 | "object-inspect": {
1216 | "version": "1.9.0",
1217 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz",
1218 | "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==",
1219 | "dev": true
1220 | },
1221 | "object-is": {
1222 | "version": "1.1.4",
1223 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz",
1224 | "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==",
1225 | "dev": true,
1226 | "requires": {
1227 | "call-bind": "^1.0.0",
1228 | "define-properties": "^1.1.3"
1229 | }
1230 | },
1231 | "object-keys": {
1232 | "version": "1.1.1",
1233 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
1234 | "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
1235 | "dev": true
1236 | },
1237 | "object.assign": {
1238 | "version": "4.1.2",
1239 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
1240 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
1241 | "dev": true,
1242 | "requires": {
1243 | "call-bind": "^1.0.0",
1244 | "define-properties": "^1.1.3",
1245 | "has-symbols": "^1.0.1",
1246 | "object-keys": "^1.1.1"
1247 | }
1248 | },
1249 | "on-finished": {
1250 | "version": "2.3.0",
1251 | "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
1252 | "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
1253 | "dev": true,
1254 | "requires": {
1255 | "ee-first": "1.1.1"
1256 | }
1257 | },
1258 | "once": {
1259 | "version": "1.4.0",
1260 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
1261 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
1262 | "dev": true,
1263 | "requires": {
1264 | "wrappy": "1"
1265 | }
1266 | },
1267 | "optionator": {
1268 | "version": "0.8.3",
1269 | "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
1270 | "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
1271 | "dev": true,
1272 | "requires": {
1273 | "deep-is": "~0.1.3",
1274 | "fast-levenshtein": "~2.0.6",
1275 | "levn": "~0.3.0",
1276 | "prelude-ls": "~1.1.2",
1277 | "type-check": "~0.3.2",
1278 | "word-wrap": "~1.2.3"
1279 | }
1280 | },
1281 | "p-limit": {
1282 | "version": "3.1.0",
1283 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
1284 | "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
1285 | "dev": true,
1286 | "requires": {
1287 | "yocto-queue": "^0.1.0"
1288 | }
1289 | },
1290 | "p-locate": {
1291 | "version": "5.0.0",
1292 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
1293 | "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
1294 | "dev": true,
1295 | "requires": {
1296 | "p-limit": "^3.0.2"
1297 | }
1298 | },
1299 | "p-try": {
1300 | "version": "2.2.0",
1301 | "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
1302 | "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
1303 | "dev": true
1304 | },
1305 | "parseurl": {
1306 | "version": "1.3.3",
1307 | "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
1308 | "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
1309 | "dev": true
1310 | },
1311 | "path-exists": {
1312 | "version": "4.0.0",
1313 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
1314 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
1315 | "dev": true
1316 | },
1317 | "path-is-absolute": {
1318 | "version": "1.0.1",
1319 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
1320 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
1321 | "dev": true
1322 | },
1323 | "path-to-regexp": {
1324 | "version": "0.1.7",
1325 | "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
1326 | "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=",
1327 | "dev": true
1328 | },
1329 | "picomatch": {
1330 | "version": "2.2.2",
1331 | "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz",
1332 | "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==",
1333 | "dev": true
1334 | },
1335 | "prelude-ls": {
1336 | "version": "1.1.2",
1337 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
1338 | "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
1339 | "dev": true
1340 | },
1341 | "proxy-addr": {
1342 | "version": "2.0.6",
1343 | "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
1344 | "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
1345 | "dev": true,
1346 | "requires": {
1347 | "forwarded": "~0.1.2",
1348 | "ipaddr.js": "1.9.1"
1349 | }
1350 | },
1351 | "qs": {
1352 | "version": "6.7.0",
1353 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
1354 | "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
1355 | "dev": true
1356 | },
1357 | "randombytes": {
1358 | "version": "2.1.0",
1359 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
1360 | "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
1361 | "dev": true,
1362 | "requires": {
1363 | "safe-buffer": "^5.1.0"
1364 | }
1365 | },
1366 | "range-parser": {
1367 | "version": "1.2.1",
1368 | "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
1369 | "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
1370 | "dev": true
1371 | },
1372 | "raw-body": {
1373 | "version": "2.4.0",
1374 | "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
1375 | "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
1376 | "dev": true,
1377 | "requires": {
1378 | "bytes": "3.1.0",
1379 | "http-errors": "1.7.2",
1380 | "iconv-lite": "0.4.24",
1381 | "unpipe": "1.0.0"
1382 | }
1383 | },
1384 | "readable-stream": {
1385 | "version": "3.6.0",
1386 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
1387 | "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
1388 | "dev": true,
1389 | "requires": {
1390 | "inherits": "^2.0.3",
1391 | "string_decoder": "^1.1.1",
1392 | "util-deprecate": "^1.0.1"
1393 | }
1394 | },
1395 | "readdirp": {
1396 | "version": "3.5.0",
1397 | "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz",
1398 | "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==",
1399 | "dev": true,
1400 | "requires": {
1401 | "picomatch": "^2.2.1"
1402 | }
1403 | },
1404 | "require-directory": {
1405 | "version": "2.1.1",
1406 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
1407 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
1408 | "dev": true
1409 | },
1410 | "require-main-filename": {
1411 | "version": "2.0.0",
1412 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
1413 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
1414 | "dev": true
1415 | },
1416 | "resolve": {
1417 | "version": "1.1.7",
1418 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz",
1419 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=",
1420 | "dev": true
1421 | },
1422 | "safe-buffer": {
1423 | "version": "5.1.2",
1424 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
1425 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
1426 | "dev": true
1427 | },
1428 | "safer-buffer": {
1429 | "version": "2.1.2",
1430 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
1431 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
1432 | "dev": true
1433 | },
1434 | "semver": {
1435 | "version": "7.3.5",
1436 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz",
1437 | "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==",
1438 | "dev": true,
1439 | "requires": {
1440 | "lru-cache": "^6.0.0"
1441 | }
1442 | },
1443 | "send": {
1444 | "version": "0.17.1",
1445 | "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
1446 | "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
1447 | "dev": true,
1448 | "requires": {
1449 | "debug": "2.6.9",
1450 | "depd": "~1.1.2",
1451 | "destroy": "~1.0.4",
1452 | "encodeurl": "~1.0.2",
1453 | "escape-html": "~1.0.3",
1454 | "etag": "~1.8.1",
1455 | "fresh": "0.5.2",
1456 | "http-errors": "~1.7.2",
1457 | "mime": "1.6.0",
1458 | "ms": "2.1.1",
1459 | "on-finished": "~2.3.0",
1460 | "range-parser": "~1.2.1",
1461 | "statuses": "~1.5.0"
1462 | },
1463 | "dependencies": {
1464 | "ms": {
1465 | "version": "2.1.1",
1466 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
1467 | "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
1468 | "dev": true
1469 | }
1470 | }
1471 | },
1472 | "serialize-javascript": {
1473 | "version": "5.0.1",
1474 | "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
1475 | "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
1476 | "dev": true,
1477 | "requires": {
1478 | "randombytes": "^2.1.0"
1479 | }
1480 | },
1481 | "serve-static": {
1482 | "version": "1.14.1",
1483 | "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
1484 | "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
1485 | "dev": true,
1486 | "requires": {
1487 | "encodeurl": "~1.0.2",
1488 | "escape-html": "~1.0.3",
1489 | "parseurl": "~1.3.3",
1490 | "send": "0.17.1"
1491 | }
1492 | },
1493 | "set-blocking": {
1494 | "version": "2.0.0",
1495 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
1496 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
1497 | "dev": true
1498 | },
1499 | "setprototypeof": {
1500 | "version": "1.1.1",
1501 | "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1502 | "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==",
1503 | "dev": true
1504 | },
1505 | "side-channel": {
1506 | "version": "1.0.4",
1507 | "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
1508 | "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
1509 | "dev": true,
1510 | "requires": {
1511 | "call-bind": "^1.0.0",
1512 | "get-intrinsic": "^1.0.2",
1513 | "object-inspect": "^1.9.0"
1514 | },
1515 | "dependencies": {
1516 | "get-intrinsic": {
1517 | "version": "1.1.1",
1518 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz",
1519 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==",
1520 | "dev": true,
1521 | "requires": {
1522 | "function-bind": "^1.1.1",
1523 | "has": "^1.0.3",
1524 | "has-symbols": "^1.0.1"
1525 | }
1526 | }
1527 | }
1528 | },
1529 | "source-map": {
1530 | "version": "0.2.0",
1531 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
1532 | "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
1533 | "dev": true,
1534 | "optional": true,
1535 | "requires": {
1536 | "amdefine": ">=0.0.4"
1537 | }
1538 | },
1539 | "sprintf-js": {
1540 | "version": "1.0.3",
1541 | "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
1542 | "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
1543 | "dev": true
1544 | },
1545 | "statuses": {
1546 | "version": "1.5.0",
1547 | "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1548 | "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=",
1549 | "dev": true
1550 | },
1551 | "string-width": {
1552 | "version": "2.1.1",
1553 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
1554 | "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
1555 | "dev": true,
1556 | "requires": {
1557 | "is-fullwidth-code-point": "^2.0.0",
1558 | "strip-ansi": "^4.0.0"
1559 | }
1560 | },
1561 | "string.prototype.trimend": {
1562 | "version": "1.0.3",
1563 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz",
1564 | "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==",
1565 | "dev": true,
1566 | "requires": {
1567 | "call-bind": "^1.0.0",
1568 | "define-properties": "^1.1.3"
1569 | }
1570 | },
1571 | "string.prototype.trimstart": {
1572 | "version": "1.0.3",
1573 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz",
1574 | "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==",
1575 | "dev": true,
1576 | "requires": {
1577 | "call-bind": "^1.0.0",
1578 | "define-properties": "^1.1.3"
1579 | }
1580 | },
1581 | "string_decoder": {
1582 | "version": "1.3.0",
1583 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
1584 | "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
1585 | "dev": true,
1586 | "requires": {
1587 | "safe-buffer": "~5.2.0"
1588 | },
1589 | "dependencies": {
1590 | "safe-buffer": {
1591 | "version": "5.2.1",
1592 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
1593 | "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
1594 | "dev": true
1595 | }
1596 | }
1597 | },
1598 | "strip-ansi": {
1599 | "version": "4.0.0",
1600 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
1601 | "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
1602 | "dev": true,
1603 | "requires": {
1604 | "ansi-regex": "^3.0.0"
1605 | }
1606 | },
1607 | "strip-json-comments": {
1608 | "version": "3.1.1",
1609 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
1610 | "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
1611 | "dev": true
1612 | },
1613 | "superagent": {
1614 | "version": "6.1.0",
1615 | "resolved": "https://registry.npmjs.org/superagent/-/superagent-6.1.0.tgz",
1616 | "integrity": "sha512-OUDHEssirmplo3F+1HWKUrUjvnQuA+nZI6i/JJBdXb5eq9IyEQwPyPpqND+SSsxf6TygpBEkUjISVRN4/VOpeg==",
1617 | "dev": true,
1618 | "requires": {
1619 | "component-emitter": "^1.3.0",
1620 | "cookiejar": "^2.1.2",
1621 | "debug": "^4.1.1",
1622 | "fast-safe-stringify": "^2.0.7",
1623 | "form-data": "^3.0.0",
1624 | "formidable": "^1.2.2",
1625 | "methods": "^1.1.2",
1626 | "mime": "^2.4.6",
1627 | "qs": "^6.9.4",
1628 | "readable-stream": "^3.6.0",
1629 | "semver": "^7.3.2"
1630 | },
1631 | "dependencies": {
1632 | "debug": {
1633 | "version": "4.3.2",
1634 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz",
1635 | "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==",
1636 | "dev": true,
1637 | "requires": {
1638 | "ms": "2.1.2"
1639 | }
1640 | },
1641 | "mime": {
1642 | "version": "2.5.2",
1643 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.2.tgz",
1644 | "integrity": "sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg==",
1645 | "dev": true
1646 | },
1647 | "ms": {
1648 | "version": "2.1.2",
1649 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
1650 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
1651 | "dev": true
1652 | },
1653 | "qs": {
1654 | "version": "6.10.1",
1655 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.1.tgz",
1656 | "integrity": "sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==",
1657 | "dev": true,
1658 | "requires": {
1659 | "side-channel": "^1.0.4"
1660 | }
1661 | }
1662 | }
1663 | },
1664 | "supertest": {
1665 | "version": "6.1.6",
1666 | "resolved": "https://registry.npmjs.org/supertest/-/supertest-6.1.6.tgz",
1667 | "integrity": "sha512-0hACYGNJ8OHRg8CRITeZOdbjur7NLuNs0mBjVhdpxi7hP6t3QIbOzLON5RTUmZcy2I9riuII3+Pr2C7yztrIIg==",
1668 | "dev": true,
1669 | "requires": {
1670 | "methods": "^1.1.2",
1671 | "superagent": "^6.1.0"
1672 | }
1673 | },
1674 | "supports-color": {
1675 | "version": "3.2.3",
1676 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz",
1677 | "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=",
1678 | "dev": true,
1679 | "requires": {
1680 | "has-flag": "^1.0.0"
1681 | }
1682 | },
1683 | "to-regex-range": {
1684 | "version": "5.0.1",
1685 | "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
1686 | "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
1687 | "dev": true,
1688 | "requires": {
1689 | "is-number": "^7.0.0"
1690 | }
1691 | },
1692 | "toidentifier": {
1693 | "version": "1.0.0",
1694 | "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
1695 | "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==",
1696 | "dev": true
1697 | },
1698 | "type-check": {
1699 | "version": "0.3.2",
1700 | "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
1701 | "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
1702 | "dev": true,
1703 | "requires": {
1704 | "prelude-ls": "~1.1.2"
1705 | }
1706 | },
1707 | "type-is": {
1708 | "version": "1.6.18",
1709 | "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
1710 | "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
1711 | "dev": true,
1712 | "requires": {
1713 | "media-typer": "0.3.0",
1714 | "mime-types": "~2.1.24"
1715 | }
1716 | },
1717 | "uglify-js": {
1718 | "version": "3.12.1",
1719 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.12.1.tgz",
1720 | "integrity": "sha512-o8lHP20KjIiQe5b/67Rh68xEGRrc2SRsCuuoYclXXoC74AfSRGblU1HKzJWH3HxPZ+Ort85fWHpSX7KwBUC9CQ==",
1721 | "dev": true,
1722 | "optional": true
1723 | },
1724 | "unpipe": {
1725 | "version": "1.0.0",
1726 | "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
1727 | "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=",
1728 | "dev": true
1729 | },
1730 | "util": {
1731 | "version": "0.12.3",
1732 | "resolved": "https://registry.npmjs.org/util/-/util-0.12.3.tgz",
1733 | "integrity": "sha512-I8XkoQwE+fPQEhy9v012V+TSdH2kp9ts29i20TaaDUXsg7x/onePbhFJUExBfv/2ay1ZOp/Vsm3nDlmnFGSAog==",
1734 | "dev": true,
1735 | "requires": {
1736 | "inherits": "^2.0.3",
1737 | "is-arguments": "^1.0.4",
1738 | "is-generator-function": "^1.0.7",
1739 | "is-typed-array": "^1.1.3",
1740 | "safe-buffer": "^5.1.2",
1741 | "which-typed-array": "^1.1.2"
1742 | }
1743 | },
1744 | "util-deprecate": {
1745 | "version": "1.0.2",
1746 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1747 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
1748 | "dev": true
1749 | },
1750 | "utils-merge": {
1751 | "version": "1.0.1",
1752 | "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
1753 | "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=",
1754 | "dev": true
1755 | },
1756 | "vary": {
1757 | "version": "1.1.2",
1758 | "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
1759 | "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
1760 | "dev": true
1761 | },
1762 | "which": {
1763 | "version": "1.3.1",
1764 | "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
1765 | "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
1766 | "dev": true,
1767 | "requires": {
1768 | "isexe": "^2.0.0"
1769 | }
1770 | },
1771 | "which-module": {
1772 | "version": "2.0.0",
1773 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
1774 | "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
1775 | "dev": true
1776 | },
1777 | "which-typed-array": {
1778 | "version": "1.1.4",
1779 | "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz",
1780 | "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==",
1781 | "dev": true,
1782 | "requires": {
1783 | "available-typed-arrays": "^1.0.2",
1784 | "call-bind": "^1.0.0",
1785 | "es-abstract": "^1.18.0-next.1",
1786 | "foreach": "^2.0.5",
1787 | "function-bind": "^1.1.1",
1788 | "has-symbols": "^1.0.1",
1789 | "is-typed-array": "^1.1.3"
1790 | }
1791 | },
1792 | "wide-align": {
1793 | "version": "1.1.3",
1794 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
1795 | "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
1796 | "dev": true,
1797 | "requires": {
1798 | "string-width": "^1.0.2 || 2"
1799 | }
1800 | },
1801 | "word-wrap": {
1802 | "version": "1.2.3",
1803 | "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
1804 | "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
1805 | "dev": true
1806 | },
1807 | "wordwrap": {
1808 | "version": "1.0.0",
1809 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
1810 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
1811 | "dev": true
1812 | },
1813 | "workerpool": {
1814 | "version": "6.0.2",
1815 | "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.0.2.tgz",
1816 | "integrity": "sha512-DSNyvOpFKrNusaaUwk+ej6cBj1bmhLcBfj80elGk+ZIo5JSkq+unB1dLKEOcNfJDZgjGICfhQ0Q5TbP0PvF4+Q==",
1817 | "dev": true
1818 | },
1819 | "wrap-ansi": {
1820 | "version": "5.1.0",
1821 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
1822 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
1823 | "dev": true,
1824 | "requires": {
1825 | "ansi-styles": "^3.2.0",
1826 | "string-width": "^3.0.0",
1827 | "strip-ansi": "^5.0.0"
1828 | },
1829 | "dependencies": {
1830 | "ansi-regex": {
1831 | "version": "4.1.0",
1832 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1833 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1834 | "dev": true
1835 | },
1836 | "ansi-styles": {
1837 | "version": "3.2.1",
1838 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
1839 | "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
1840 | "dev": true,
1841 | "requires": {
1842 | "color-convert": "^1.9.0"
1843 | }
1844 | },
1845 | "color-convert": {
1846 | "version": "1.9.3",
1847 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
1848 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
1849 | "dev": true,
1850 | "requires": {
1851 | "color-name": "1.1.3"
1852 | }
1853 | },
1854 | "color-name": {
1855 | "version": "1.1.3",
1856 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
1857 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
1858 | "dev": true
1859 | },
1860 | "string-width": {
1861 | "version": "3.1.0",
1862 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1863 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1864 | "dev": true,
1865 | "requires": {
1866 | "emoji-regex": "^7.0.1",
1867 | "is-fullwidth-code-point": "^2.0.0",
1868 | "strip-ansi": "^5.1.0"
1869 | }
1870 | },
1871 | "strip-ansi": {
1872 | "version": "5.2.0",
1873 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1874 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1875 | "dev": true,
1876 | "requires": {
1877 | "ansi-regex": "^4.1.0"
1878 | }
1879 | }
1880 | }
1881 | },
1882 | "wrappy": {
1883 | "version": "1.0.2",
1884 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1885 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
1886 | "dev": true
1887 | },
1888 | "y18n": {
1889 | "version": "4.0.1",
1890 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz",
1891 | "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==",
1892 | "dev": true
1893 | },
1894 | "yallist": {
1895 | "version": "4.0.0",
1896 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
1897 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
1898 | "dev": true
1899 | },
1900 | "yargs": {
1901 | "version": "13.3.2",
1902 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz",
1903 | "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==",
1904 | "dev": true,
1905 | "requires": {
1906 | "cliui": "^5.0.0",
1907 | "find-up": "^3.0.0",
1908 | "get-caller-file": "^2.0.1",
1909 | "require-directory": "^2.1.1",
1910 | "require-main-filename": "^2.0.0",
1911 | "set-blocking": "^2.0.0",
1912 | "string-width": "^3.0.0",
1913 | "which-module": "^2.0.0",
1914 | "y18n": "^4.0.0",
1915 | "yargs-parser": "^13.1.2"
1916 | },
1917 | "dependencies": {
1918 | "ansi-regex": {
1919 | "version": "4.1.0",
1920 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
1921 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
1922 | "dev": true
1923 | },
1924 | "find-up": {
1925 | "version": "3.0.0",
1926 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
1927 | "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
1928 | "dev": true,
1929 | "requires": {
1930 | "locate-path": "^3.0.0"
1931 | }
1932 | },
1933 | "locate-path": {
1934 | "version": "3.0.0",
1935 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
1936 | "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
1937 | "dev": true,
1938 | "requires": {
1939 | "p-locate": "^3.0.0",
1940 | "path-exists": "^3.0.0"
1941 | }
1942 | },
1943 | "p-limit": {
1944 | "version": "2.3.0",
1945 | "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
1946 | "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
1947 | "dev": true,
1948 | "requires": {
1949 | "p-try": "^2.0.0"
1950 | }
1951 | },
1952 | "p-locate": {
1953 | "version": "3.0.0",
1954 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
1955 | "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
1956 | "dev": true,
1957 | "requires": {
1958 | "p-limit": "^2.0.0"
1959 | }
1960 | },
1961 | "path-exists": {
1962 | "version": "3.0.0",
1963 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
1964 | "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
1965 | "dev": true
1966 | },
1967 | "string-width": {
1968 | "version": "3.1.0",
1969 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
1970 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
1971 | "dev": true,
1972 | "requires": {
1973 | "emoji-regex": "^7.0.1",
1974 | "is-fullwidth-code-point": "^2.0.0",
1975 | "strip-ansi": "^5.1.0"
1976 | }
1977 | },
1978 | "strip-ansi": {
1979 | "version": "5.2.0",
1980 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
1981 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
1982 | "dev": true,
1983 | "requires": {
1984 | "ansi-regex": "^4.1.0"
1985 | }
1986 | }
1987 | }
1988 | },
1989 | "yargs-parser": {
1990 | "version": "13.1.2",
1991 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz",
1992 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==",
1993 | "dev": true,
1994 | "requires": {
1995 | "camelcase": "^5.0.0",
1996 | "decamelize": "^1.2.0"
1997 | }
1998 | },
1999 | "yargs-unparser": {
2000 | "version": "2.0.0",
2001 | "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
2002 | "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
2003 | "dev": true,
2004 | "requires": {
2005 | "camelcase": "^6.0.0",
2006 | "decamelize": "^4.0.0",
2007 | "flat": "^5.0.2",
2008 | "is-plain-obj": "^2.1.0"
2009 | },
2010 | "dependencies": {
2011 | "camelcase": {
2012 | "version": "6.2.0",
2013 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz",
2014 | "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==",
2015 | "dev": true
2016 | },
2017 | "decamelize": {
2018 | "version": "4.0.0",
2019 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
2020 | "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
2021 | "dev": true
2022 | }
2023 | }
2024 | },
2025 | "yocto-queue": {
2026 | "version": "0.1.0",
2027 | "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
2028 | "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
2029 | "dev": true
2030 | }
2031 | }
2032 | }
2033 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "msgpack-response",
3 | "version": "1.0.4",
4 | "description": "ExpressJS msgpack response middleware",
5 | "scripts": {
6 | "test": "mocha --reporter spec --check-leaks --bail test/",
7 | "coverage": "istanbul cover _mocha -- -R spec"
8 | },
9 | "repository": {
10 | "type": "git",
11 | "url": "https://github.com/sschizas/msgpack-response"
12 | },
13 | "keywords": [
14 | "express",
15 | "expressjs",
16 | "msgpack",
17 | "middleware",
18 | "json",
19 | "packing"
20 | ],
21 | "author": "Stavros Schizas (https://stavrosschizas.com)",
22 | "contributors": [
23 | "Stavros Schizas (https://stavrosschizas.com)",
24 | "Vassilios Karakoidas (http://bkarak.wizhut.com)"
25 | ],
26 | "license": "MIT",
27 | "bugs": {
28 | "url": "https://github.com/sschizas/msgpack-response/issues"
29 | },
30 | "dependencies": {
31 | "commander": "^6.2.0",
32 | "lodash": "^4.17.4",
33 | "msgpack": "^1.0.2"
34 | },
35 | "devDependencies": {
36 | "assert": "^2.0.0",
37 | "express": "^4.15.2",
38 | "istanbul": "^0.4.5",
39 | "mocha": "^8.2.1",
40 | "supertest": "^6.0.1"
41 | },
42 | "files": [
43 | "LICENSE.md",
44 | "README.md",
45 | "CHANGELOG.md",
46 | "index.js"
47 | ],
48 | "engines": {
49 | "node": ">= 6.0"
50 | },
51 | "homepage": "https://github.com/sschizas/msgpack-response"
52 | }
53 |
--------------------------------------------------------------------------------
/test/base.js:
--------------------------------------------------------------------------------
1 | const _ = require('lodash');
2 | const assert = require('assert');
3 | const express = require('express');
4 | const request = require('supertest');
5 | const msgpack = require('msgpack');
6 |
7 | const msgPack = require('../index.js');
8 |
9 | let app = null;
10 | let sample_json = {"da test": "worked"};
11 | let sample_encoded = msgpack.pack(sample_json);
12 | let sample_encoded_size = _.size(sample_encoded);
13 |
14 |
15 | describe('Base Functionality', function() {
16 | before(function() {
17 | app = express();
18 |
19 | app.use(msgPack({auto_detect: true}));
20 | app.get('/test_json', function(req, res) {
21 | res.status(200).json(sample_json);
22 | });
23 | app.get('/test_msgpack', function(req, res) {
24 | res.status(200).msgPack(sample_json);
25 | });
26 | });
27 |
28 | describe('#Demo App Test Requests (auto-detect JSON)', function() {
29 | it('Count Encoded Message Bytes', function(done) {
30 | request(app)
31 | .get('/test_json')
32 | .set('Accept', 'application/x-msgpack')
33 | .expect('Content-Type', /msgpack/)
34 | .expect(200)
35 | .end(function(err, res) {
36 | assert.ifError(err);
37 | let response_size = _.size(res.text);
38 | assert.equal(sample_encoded_size, response_size, `Response size is not correct (${sample_encoded_size} != ${response_size})`);
39 | done();
40 | });
41 |
42 | });
43 |
44 | it('Check Decoded Response Structure', function(done) {
45 | request(app)
46 | .get('/test_json')
47 | .set('Accept', 'application/x-msgpack')
48 | .expect('Content-Type', /msgpack/)
49 | .expect(200)
50 | .end(function(err, res) {
51 | assert.ifError(err);
52 | done();
53 | });
54 | });
55 | });
56 |
57 | describe('#Demo App Test Requests (msgPack() extension method)', function() {
58 | it('Count Encoded Message Bytes', function(done) {
59 | request(app)
60 | .get('/test_msgpack')
61 | .set('Accept', 'application/x-msgpack')
62 | .expect('Content-Type', /msgpack/)
63 | .expect(200)
64 | .end(function(err, res) {
65 | assert.ifError(err);
66 | let response_size = _.size(res.text);
67 | assert.equal(sample_encoded_size, response_size, `Response size is not correct (${sample_encoded_size} != ${response_size})`);
68 | done();
69 | });
70 | });
71 |
72 | it('Check Decoded Response Structure', function(done) {
73 | request(app)
74 | .get('/test_msgpack')
75 | .set('Accept', 'application/x-msgpack')
76 | .expect('Content-Type', /msgpack/)
77 | .expect(200)
78 | .end(function(err, res) {
79 | assert.ifError(err);
80 | done();
81 | });
82 | });
83 | });
84 | });
85 |
--------------------------------------------------------------------------------